我只是试图将光线投射应用于放置在屏幕上的对象,除了这些模型是彼此的克隆:
我得到了两个盒子 obj 文件,每个文件在一个循环中克隆了 5 次并插入到一个数组MyboxArray[]
中。
在运行时,这些盒子将在另一个循环中添加材料。例子:MyboxArray[i].children.material = whatever;
然后将这些框添加到场景中。
问题:
一旦所有的盒子都准备好纹理,它们就会被添加到scene.add(MyArray[j])
循环中;
以下是问题所在:
var intersects = raycaster.intersectObjects(scene.children,true);// or MyArray, myArray.children
if ( intersects.length > 0 ) {
console.log( intersects[0].name);// returns undefined!
console.log( MyArray[0].name) // returns Good
}
我的问题是我无法与我选择的项目交互,因为它返回未定义,但我知道它在那里,通常如果我只是将项目推入一个数组它可以工作,但这些项目是克隆然后推入一个数组所以它不会不想抓住他们任何帮助将不胜感激。
更新:我更接近解决方案,问题是 raycaster.intersectObjects(scene.children,true); 最初我可以这样做: raycaster.intersectObjects(MyArray[i].children);
//这只会选择 2 个项目对象...我需要一些如何增加 myArray..我猜我在数组中有一个数组,任何想法。