Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在three.js中从场景中移除/添加对象_Three.js - Fatal编程技术网

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

在three.js中从场景中移除/添加对象,three.js,Three.js,我正在尝试从场景中添加或删除对象: const rootObject = this.scene.getObjectByName('Object Group'); rootObject.remove(obj);// OR rootObject.add(obj); 我所观察到的是,为了让变化在场景中可见,用户需要执行一些操作,比如平移或缩放等 如何在不需要手动操作的情况下使更改立即可见?看起来场景不是在动画循环中重画,而是在某些事件中重画(单击、平移或缩小/缩小等) 因此,在添加或删除对象时,需要

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

const rootObject = this.scene.getObjectByName('Object Group');
rootObject.remove(obj);// OR rootObject.add(obj);
我所观察到的是,为了让变化在场景中可见,用户需要执行一些操作,比如平移或缩放等


如何在不需要手动操作的情况下使更改立即可见?

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

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

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

[]

“看起来场景正在重画,而不是在动画循环中”……这让我找到了根本原因。谢谢