在three.js中访问组子项以进行翻转

时间:2013-08-22 21:05:42

标签: javascript html5 canvas three.js parent-child

所以我在three.js中有一个raycaster,它允许我检测我的组被翻过来的时间。它目前的工作原理是,当我将鼠标移到该组的任何一个孩子上时,整个组的材料都会发生变化。 这是我的问题:如何检测哪个特定的孩子被翻过来并只突出显示那个特定的孩子?

以下是代码:

var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());

var intersects = raycaster.intersectObjects(tiles_group.children, true);

if ( intersects.length > 0 ) {
  intersectedObject = intersects[0].object;        
  intersectedObject.material.emissive.setHex( 0xffffff );      
  intersected = true;      
} else {
  intersected = false;}

这应该很容易,但经过几个小时的搜索和尝试,我似乎无法找到正确的逻辑/语法。提前感谢阅读/回复此帖子的任何人!

1 个答案:

答案 0 :(得分:1)

简短的回答:为每个对象创建一个材质而不是为所有对象创建一个材质

解释:正如WestLangley指出的那样,我只需要为每个子对象创建一个单独的材质,而不是让它们共享相同的材质,即将材质创建INSIDE用于生成对象的循环,以便每个对象都得到它自己的材料。这样,每个对象都会单独更改材料。