从 Object3D 中移除子对象

新手上路,请多包涵

如果我按以下方式创建对象:

 var group = new THREE.Object3D();

for (var i = 0; i < 10; i++) {

    geometry = new THREE.BoxGeometry(1, 1, 1);
    material = new THREE.MeshNormalMaterial();
    mesh = new THREE.Mesh(geometry, material);

    group.add(mesh);

}

scene.add(group);

那么,如何从该组中删除这些对象呢?

我试着这样做…

 for (var i = group.children.length - 1; i >= 0; i--) {

    scene.remove(group.children[i]);

}

…但它输出为“未定义”。我在这里做错了什么?

原文由 jasfar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 732
2 个回答
for (var i = group.children.length - 1; i >= 0; i--) {
    group.remove(group.children[i]);
}

原文由 Yellow and Red 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以在一行中做到这一点。

   group.remove(...group.children);

原文由 George C. 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题