シーンがあります。 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);
}