Three.js删除项目 - GridHelper

时间:2014-12-03 03:58:39

标签: three.js

我已经使用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);  }      
    }                                                                                                                                               

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将不起作用一直都是。