Three.js 如何在threejs中从raycaster的相交检查中排除辅助对象?

Three.js 如何在threejs中从raycaster的相交检查中排除辅助对象?,three.js,helper,intersection,scene,raycasting,Three.js,Helper,Intersection,Scene,Raycasting,我有一个3JS场景,在对象上进行交叉检查。我将每个场景对象添加到阵列中,然后由光线投射器进行检查 var intersects = raycaster.intersectObjects( scene.children ); 然后,我检查一个对象的颜色,并在与鼠标指针接触时更改它 INTERSECTED.material.emissive.setHex( 0xff0000 ); 如果将辅助对象(如CameraHelper或GridHelper)添加到场景中,则会出现持续错误,因为辅助对象不可能

我有一个3JS场景,在对象上进行交叉检查。我将每个场景对象添加到阵列中,然后由光线投射器进行检查

var intersects = raycaster.intersectObjects( scene.children );
然后,我检查一个对象的颜色,并在与鼠标指针接触时更改它

INTERSECTED.material.emissive.setHex( 0xff0000 );
如果将辅助对象(如
CameraHelper
GridHelper
)添加到场景中,则会出现持续错误,因为辅助对象不可能使用
.getHex
.setHex)

是否可以从该检查中排除辅助对象?我将如何执行此操作

它必须类似于
scene.children
-scene.helpers,但我想不出一个方法来做到这一点。
感谢您的帮助。

创建一组您希望Raycaster处理的对象

var objects = [];

objects.push( mesh1 );
objects.push( mesh2 );

---

var intersects = raycaster.intersectObjects( objects, recursiveFlag );

three.js r.73

根据我的理解,有两种解决方案:


您可能不想使用Group进行此操作的一个原因是,您可能正在使用Group将多个对象放在一起,但您只想对组中的某些对象进行光线投射测试。

非常感谢。我将对象添加到场景和一个额外的数组中,如您所述,并且只在光线投射器中处理额外的数组。