【问题标题】:raycasting objects in a group + objects in the group within it光线投射组中的对象 + 组中的对象
【发布时间】:2019-07-18 10:03:57
【问题描述】:

我想要实现的目标:起初,您只能选择“可交互”组中的对象。当您单击“可交互”对象时,您现在可以选择组“主”中的任何对象。 (你拿起一个可交互的对象,然后选择一个对象来放置它。)

“master”包含组“interactable”。现在我只能从在“可交互”中选择切换到在“主”中选择而不在“可交互”中选择。

这是我的代码:

function render() {

  raycaster.setFromCamera(mouse, camera);

  if (obj_selected) {intersects = raycaster.intersectObjects(master.children)}
  else {intersects = raycaster.intersectObjects(interactable.children)}

  if (intersects.length > 0) {
    if (INTERSECTED) INTERSECTED.material.emissive.setHex(INTERSECTED.currentHex);

    INTERSECTED = intersects[0].object;
    INTERSECTED.currentHex = INTERSECTED.material.emissive.getHex();
    INTERSECTED.material.emissive.setHex( 0xf4425f );
  } else {
    if (INTERSECTED) INTERSECTED.material.emissive.setHex(INTERSECTED.currentHex);
    INTERSECTED = null;
  }

  renderer.render(scene, camera);

}

我希望我的解释不会太混乱。提前致谢。

【问题讨论】:

    标签: three.js raycasting


    【解决方案1】:

    没关系,我想通了!

    所以我没有将事物分组,而是将网格添加到数组中。我有三个数组:主数组、静态数组和可交互数组。如果我得到master的交叉点,那么我可以访问我场景中的所有对象而不会弄乱组。

    结论:我认为我不应该在简单地对事物进行分类时使用组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多