如何在 Three.js 中从场景中删除所有 Mesh 对象?

ArU*_*rUn 3 javascript 3d scene three.js

我在函数中传递 3D 模型添加的名称和纹理名称,结果是 3D 模型在场景中渲染。所有卡住的是,我只想从场景中删除 3D 对象

当我使用 scene.children 来获取它也包含灯光和相机的对象时,我只想删除场景中的网格

mic*_*nil 5

也许这可以解决你的问题,

for (let i = scene.children.length - 1; i >= 0; i--) {
    if(scene.children[i].type === "Mesh")
        scene.remove(scene.children[i]);
}
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个反向 for 循环。这是因为我们正在从正在迭代的数组中删除项目,并且需要保留索引。