ThreeJs删除对象及对象的children

353 阅读1分钟

通过getObjectByName方法获取要删除的对象

const val = 'M-Range-01'
var selectedObject = scene.getObjectByName(val);

image.png

使用remove方法删除对象及children,记得要dispose释放内存

// 删除AGV对象
const deleteAgv = () => {
  const val = 'M-Range-01'
  console.log('scene',scene.children)
  var selectedObject = scene.getObjectByName(val);
  if(selectedObject){
    const children = selectedObject.children
    if(children){
      for (let i = children.length-1; i >= 0; i--) {
        const item = children[i];
        item.parent.remove(item)
      }
    }
    selectedObject.geometry.dispose();
    selectedObject.material.dispose();
    scene.remove( selectedObject );
  }
}