如何清除THREE.JS场景

严重鸡

我正在尝试寻找在不破坏场景本身的情况下清除场景中所有对象的方法。我知道命名对象是一种方法,然后当我们要删除该对象时,只需按其名称“获取”即可。但是,我想找到一种清除其中所有对象(无论其名称如何)的场景的快速方法。有简单的方法吗?谢谢!

米奇尼尔

您可以遍历场景的子对象并一一删除它们。


scene.children.forEach(function(object){
    scene.remove(object);
});

编辑:

如评论中所建议,以上答案是错误的。从场景中删除所有对象的正确方法是使用for / while循环。

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

注意:这只是对对象层次结构的快速而肮脏的清除。如果您打算做很多事情,则可能会冒用上面的代码陷入内存泄漏的风险,因为渲染器引用了对象的材质,纹理和几何形状。彻底清理场景更加复杂,还有许多其他问题需要更详细地介绍:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

three.js:按名称或ID访问场景对象

来自分类Dev

three.js-灯光移动时不更新场景照明

来自分类Dev

如何在three.js中访问场景元素

来自分类Dev

在Three.js场景中选择和修改材料

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

Three.js,从Collada导入的相机无法查看对象场景

来自分类Dev

Three.js:for场景中每个网格的循环?

来自分类Dev

从canvas元素本地获取three.js场景进行操作

来自分类Dev

Three.js将鼠标移动限制为仅场景

来自分类Dev

在Three.js场景中添加多个球体

来自分类Dev

缓慢地从Three.js场景中删除许多对象

来自分类Dev

为Three.js场景创建缩略图

来自分类Dev

无法获得场景以Three.js呈现

来自分类Dev

Three.js在场景的左右移动相机

来自分类Dev

Three.js-如何为整个场景创建镜像

来自分类Dev

Three.js OrbitControls平移和场景旋转

来自分类Dev

在Vuetify.js组件中加载Three.js场景

来自分类Dev

如何在three.js中获得整个场景的boundingSphere?

来自分类Dev

场景中的伪像Three.js / editor

来自分类Dev

在画布中渲染Three.js场景

来自分类Dev

在three.js中对“子场景”进行光线投射

来自分类Dev

无法从Three.js场景中删除精灵?

来自分类Dev

如何在three.js中访问场景元素

来自分类Dev

Three.js Raycaster未检测到场景网格

来自分类Dev

THREE.js静态场景,检测Webgl渲染何时完成

来自分类Dev

场景中的静态对象-Three.js

来自分类Dev

如何从内存中擦除场景和网格?Three.js

来自分类Dev

Three.js获得场景的中心

来自分类Dev

单击说明此场景的图像后显示一个 Three.js 场景