javascript - 如何清除 THREE.JS 场景

标签 javascript three.js

我正在尝试寻找在不破坏场景本身的情况下清除场景中所有对象的方法。我知道命名对象是一种方式,然后当我们想要删除对象时,我们只是通过它的名字“得到”它。但是,我想找到一种快速的方法来清除其中所有对象的场景,而不管它们的名称。有简单的方法吗?谢谢!

最佳答案

可以遍历场景的子对象,将它们一一移除。

正如评论中所建议的那样,这应该以相反的顺序完成,以免修改您正在迭代的元素。

while(scene.children.length > 0){ 
    scene.remove(scene.children[0]); 
}

注意:这只是对对象层次结构的快速而肮脏的清除。如果你打算经常这样做,你可能会遇到上面代码中内存泄漏的风险,因为渲染器引用了对象的 Material 、纹理和几何图形。彻底清理现场更加复杂,还有很多其他问题需要更详细地讨论:

关于javascript - 如何清除 THREE.JS 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359830/

相关文章:

javascript - 从 JS 变量更新查询字符串中的 PHP 变量

javascript - 根据另一个数组的键过滤数组

javascript - 有没有办法在 Three.js 中有透明的视频背景?

javascript - 如何在 Three.js 中使用数组代替 MeshFaceMaterial?

javascript - THREE.js WebGLRenderer Canvas 消耗 'click' 鼠标事件

javascript - 如何使用 D3.js 在地理 map 中标记城市?

javascript - 如何创建超过 100 张面孔的 facebook likebox?

javascript - 三.js设置背景图片

javascript - 使用nodejs和mqtt在网站上实时显示内容

javascript - 正确的 UV 贴图 Three.js