我已经使用gridhelper将一些网格放入我的场景中。但是,当我删除它时,它并不总是从场景中移除。
这是我通过删除网格和轴的代码。为什么不从场景中删除网格?有时候它会起作用,有时却不起作用。
for (var ObjID in this.Scene.__objects)
{ if (this.Scene.__objects[ObjID] instanceof THREE.GridHelper){ this.Scene.remove(this.Scene.__objects[ObjID]); this.Scene.__objects.splice(ObjID,1); }
if (this.Scene.__objects[ObjID] instanceof THREE.AxisHelper){ this.Scene.remove(this.Scene.__objects[ObjID]); this.Scene.__objects.splice(ObjID,1); }
}
答案 0 :(得分:0)
在创建GridHelper时为其指定名称:
var grid = new THREE.GridHelper(1000, 5);
grid.position.set(45,0,25);
grid.name = "GridHelper";
scene.add(grid);
然后你可以打电话:
scene.remove(scene.getObjectByName("Grid"));
或者,如果将网格对象变量更改为全局变量,则可以使用:
scene.remove(grid);
您的代码错误,并且每次都不起作用,因为Grid-Center(obj.geometry.BoundingSphere.center.x / y / z)并不总是在场景中,因此If-query将不起作用一直都是。