我正在尝试寻找在不破坏场景本身的情况下清除场景中所有对象的方法。我知道命名对象是一种方法,然后当我们要删除该对象时,只需按其名称“获取”即可。但是,我想找到一种清除其中所有对象(无论其名称如何)的场景的快速方法。有简单的方法吗?谢谢!
您可以遍历场景的子对象并一一删除它们。
scene.children.forEach(function(object){
scene.remove(object);
});
编辑:
如评论中所建议,以上答案是错误的。从场景中删除所有对象的正确方法是使用for / while循环。
while(scene.children.length > 0){
scene.remove(scene.children[0]);
}
注意:这只是对对象层次结构的快速而肮脏的清除。如果您打算做很多事情,则可能会冒用上面的代码陷入内存泄漏的风险,因为渲染器引用了对象的材质,纹理和几何形状。彻底清理场景更加复杂,还有许多其他问题需要更详细地介绍:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句