three.js从场景中删除特定对象

pet*_*_de 1 javascript three.js

我有一个Meshes数组,每个Mesh都在name属性中存储了它的ID.我想问你,是否可以从场景中删除具有特定ID的对象.像这样的东西.

var geo = some geometry;
var mat = some material;
for (var i = 0; i < 10; i++) {
  var object = new THREE.Mesh(geo, mat);
  object.name = i;  // i would serve as ID in this case
}
Run Code Online (Sandbox Code Playgroud)

在此之后,我想删除/删除其中的一些对象......也许有些功能就像

 remove(id);
Run Code Online (Sandbox Code Playgroud)

....

 var remove = function (id) {
  ... some magic
  scene.remove(...) // and this would remove that object, with id passed as parameter 
 }
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

谢谢!

Mar*_*fuß 7

是的:

function remove(id) {
  scene.remove(scene.getObjectByName(id));
}
Run Code Online (Sandbox Code Playgroud)

请参阅:Object3D.remove()Object3D.getObjectByName()

  • 当master分支获得更新时,这些特定于行的链接已过时,请考虑使用[永久链接](https://help.github.com/articles/getting-permanent-links-to-files/)代替。当前:[`.remove()`](https://github.com/mrdoob/three.js/blob/a1daef37e5a6b80d0173af54edd000202b95fca5/src/core/Object3D.js#L383-L411),[`.getObjectByName()`] (https://github.com/mrdoob/three.js/blob/a1daef37e5a6b80d0173af54edd000202b95fca5/src/core/Object3D.js#L419-L423) (2认同)