我有一个Threejs场景,对对象进行交叉检查。我正在将每个场景对象添加到数组,然后由光线投射器对其进行检查。
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
据我了解,有2种解决方案:
您可能不希望使用Group的原因是因为您可能正在使用Group来将多个对象保持在一起,但只想对Group中的某些对象进行射线测试。