如何通过raycaster在三个js中从交叉点检查中排除辅助对象?

时间:2014-02-06 14:15:49

标签: three.js helper intersection scene raycasting

我有一个trijs场景,对象的交叉检查。我正在将每个场景对象添加到数组中,然后由raycaster检查。

var intersects = raycaster.intersectObjects( scene.children );

然后检查对象的颜色,并在与鼠标指针接触时更改它。

INTERSECTED.material.emissive.setHex( 0xff0000 );

如果我向场景添加辅助对象(如CameraHelperGridHelper),我会得到常量错误,因为辅助对象无法使用.getHex .setHex。< / p>

是否可以从此检查中排除辅助对象,我该怎么做?

它必须像scene.children - scene.helpers,但我无法想出办法。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:6)

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

var objects = [];

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

---

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

three.js r.73

答案 1 :(得分:0)

据我了解,有两种解决方案:

您可能不希望使用Group的原因是因为您可能正在使用Group将多个对象保持在一起,但只想对Group中的某些对象进行光线投射测试。