Three.js 如何在threejs中从raycaster的相交检查中排除辅助对象?
我有一个3JS场景,在对象上进行交叉检查。我将每个场景对象添加到阵列中,然后由光线投射器进行检查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)添加到场景中,则会出现持续错误,因为辅助对象不可能
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将多个对象放在一起,但您只想对组中的某些对象进行光线投射测试。非常感谢。我将对象添加到场景和一个额外的数组中,如您所述,并且只在光线投射器中处理额外的数组。