在three.js中从场景中删除对象/向场景添加对象

时间:2019-01-25 05:33:14

标签: three.js

我正在尝试从场景中添加或删除对象:

const rootObject = this.scene.getObjectByName('Object Group');
rootObject.remove(obj);// OR rootObject.add(obj);

我观察到的是,要使更改在场景中可见,用户需要执行一些操作,例如平移或放大/缩小等。

如何无需手动操作就可以立即使更改可见?

1 个答案:

答案 0 :(得分:1)

看起来场景不是在动画循环中重绘,而是在某些事件(单击,平移或放大/缩小等)中重绘。

因此,添加或删除对象时,需要强制渲染框架。例如:

document
  .getElementById('toggle')
  .addEventListener('click', function() {
    if (obj) {
      removeObject()
    } else {
      addObject()
    }
    renderer.render(scene, camera);
  })

[https://jsfiddle.net/xmke5u20/]