精灵不能从three.js场景中删除

Sprites cannot be deleted from three.js scene?

本文关键字:删除 js 不能 three 精灵      更新时间:2023-09-26

我需要在3D图上重新绘制轴标签(作为精灵实现),为此需要在添加更新标签之前删除旧标签。然而,这让我感到悲伤:旧的标签就是拒绝离开现场!我使用的是Three.js版本66。

在Three.js示例场景中测试:http://threejs.org/examples/#webgl_sprites我只需添加以下代码:

setInterval(removesprites, 1000);

所以每秒钟我们都会移除所有精灵:

function removesprites() {
  for ( var i = group.children.length-1; i>=0 ; i-- ) {
      var sprite = group.children[ i ];
      console.log("removing");
      scene.remove(sprite);
  }
}

精灵都在Object3D组中。我在另一篇文章中读到对象需要反向删除(因此需要反向循环删除),但无论我以哪种方式循环,标签都不会被删除。

有什么想法吗?

代替

scene.remove( sprite );
使用

group.remove( sprite );

参见Object3D.remove() .

three.js r.67