THREE.JS как добавлять и удалять массив объектов?

Рейтинг: 1Ответов: 1Опубликовано: 26.02.2015

Как в three.js правильно добавлять и удалять массив объектов?

Добавляю объекты так

// snake_arr содержит координаты и цвет блока
function createSnake() {
    var snake_map = Array();
    for (i=1; i <= Object.keys(snake_arr).length; i++) {
      var cubeGeometry = new THREE.CubeGeometry(5, 5, 5);
      var cubeMaterial = new THREE.MeshLambertMaterial({color: snake_arr[i].color, transparent: true, opacity: 0.99});
      cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
      cube.castShadow = true;
      cube.name = 'snake';
      cube.position = new THREE.Vector3(snake_arr[i].position.x, snake_arr[i].position.y, snake_arr[i].position.z);
      scene.add(cube);
      snake_map.push(cube);
    }
    return snake_map;
  }

Но как в этом случае удалять объекты? scene.remove(cube); Удаляет только первый блок, а как удалять все блоки?

Ответы

▲ 1Принят

Попробуйте удалять поэлементно c помощью цикла:

function removeAll() {
    var allChildren = scene.children;
    var length = allChildren.length;

   for(var i=0;i < length;i++) {
        scene.remove(allChildren[i]);
    }
}