-1

シーンがあります。 https://dl.dropboxusercontent.com/u/8913924/test2/index.html

ほとんどのオブジェクトは、単一の .obj ファイルからロードされます。さらに手作りのキューブ2個。

オブジェクトをクリックすると、色が変わるはずです。

キューブは大丈夫です。obj ファイルのオブジェクトの色が一度に変わります (ただし、そうすべきではなく、それが私の現在の質問です)。(オブジェクトのすべてのクリックは正しく検出されます。デバッグ コンソールを調べます。)

あなたの助けとアドバイスが必要です。

手作りの赤い立方体を 2 つ追加します。

var geometry = new THREE.CubeGeometry(10,10,10);
            var material = new THREE.MeshBasicMaterial({color: 0xff0000});

            mesh = new THREE.Mesh(geometry, material);

            mesh.position.z = 125;
            mesh.name = 'cube1';

            scene.add(mesh);

            geometry = new THREE.CubeGeometry(10,10,10);
            material = new THREE.MeshBasicMaterial({color: 0xff0000});

            mesh = new THREE.Mesh(geometry, material);

            mesh.position.z = 175;
            mesh.name = 'cube2';

            scene.add(mesh);

.obj から objectcts をロードします。

    var loader = new THREE.OBJMTLLoader();
loader.addEventListener( 'load', function ( event ) {
    var object = event.content;

    // cubes are already here   
    scene.add(object);
}); loader.load( 'qwerty.obj', 'qwerty.mtl' );

適切なオブジェクトの色を変更する:

var intersects = raycaster.intersectObjects( scene.__objects );
if (intersects.length > 0) {
    // got the correct object with proper id
intersects[0].object.material.color.setHex(Math.random() * 0xffffff);
}
4

1 に答える 1