【问题标题】:How To exclude helper objects from intersection check by raycaster in threejs?如何在threejs中通过raycaster从相交检查中排除辅助对象?
【发布时间】:2014-03-03 13:01:02
【问题描述】:

我有一个对对象进行交叉检查的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


    【解决方案1】:

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

    var objects = [];
    
    objects.push( mesh1 );
    objects.push( mesh2 );
    
    ---
    
    var intersects = raycaster.intersectObjects( objects, recursiveFlag );
    

    three.js r.73

    【讨论】:

    • 非常感谢。如您所述,我将对象添加到场景和一个额外的数组中,并且只处理光线投射器中的额外数组。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-30
      • 2018-07-01
      • 2022-01-10
      • 2014-05-03
      • 2018-08-29
      • 2016-06-22
      • 2019-06-17
      • 2018-08-06
      相关资源
      最近更新 更多