我有一个trijs场景,对象的交叉检查。我正在将每个场景对象添加到数组中,然后由raycaster检查。
var intersects = raycaster.intersectObjects( scene.children );
然后检查对象的颜色,并在与鼠标指针接触时更改它。
INTERSECTED.material.emissive.setHex( 0xff0000 );
如果我向场景添加辅助对象(如CameraHelper
或GridHelper
),我会得到常量错误,因为辅助对象无法使用.getHex
.setHex
。< / p>
是否可以从此检查中排除辅助对象,我该怎么做?
它必须像scene.children
- scene.helpers,但我无法想出办法。
谢谢你的帮助。
答案 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中的某些对象进行光线投射测试。