我只是尝试将光线投射应用于放置在屏幕上的对象,除了这些模型是彼此的克隆:
我得到两个盒子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
}
我的问题是我无法与我选择的项目进行交互,因为它返回undefined,但我知道它在那里,通常如果我只是将项目推入数组它工作,但这些项目是克隆然后推入数组所以它不想抓住他们任何帮助将不胜感激。
更新:我更接近解决方案,问题是raycaster.intersectObjects(scene.children,true);
初步我可以这样做:raycaster.intersectObjects(MyArray[i].children);
//这只会选择2个项目对象...我需要一些增量myArray..im猜测我有一个数组内的数组,任何想法。