如何在Threejs的raycaster的交叉检查中排除辅助对象?

问题描述 投票:3回答:2

我有一个Threejs场景,对对象进行交叉检查。我正在将每个场景对象添加到数组,然后由光线投射器对其进行检查。

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

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

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

如果将CameraHelperGridHelper之类的辅助对象添加到场景中,我将不断出现错误,因为辅助对象无法实现.getHex .setHex

是否有可能从此检查中排除帮助对象,我将如何做?

它必须类似于scene.children-scene.helpers,但我无法提出一种方法。感谢您的帮助。

three.js helper intersection scene raycasting
2个回答
7
投票

创建要Raycaster处理的对象的数组。

var objects = [];

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

---

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

three.js r.73


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.