Вот мой код, я задаюсь вопросом, если удаление достаточно хорошо, чтобы уничтожить объект, и что нет утечки памяти:Удалить: как убедиться, что утечки памяти нет?
class Shoot extends MovableObject{
constructor(){
super();
this.speed = 2;
this.geometry = new THREE.CircleGeometry(0.5);
this.material = new THREE.MeshBasicMaterial({ color: 0xffffff });
this.mesh = new THREE.Mesh(this.geometry, this.material);
}
setRotation(rotation){
this.mesh.rotation.set(rotation.x, rotation.y, rotation.z);
}
setPosition(position){
this.mesh.position.set(position.x, position.y, position.z);
}
}
Позже я получил эту функцию, listShoot является единственное место, где у меня есть Стреляй экземпляры:
var position;
listShoot.forEach(function(shoot, i, list){
position = shoot.getMesh().getWorldPosition();
if(/*i want to destroy my shoot*/){
list.splice(i, 1);
scene.remove(shoot.getMesh()); // This is ThreeJS
delete shoot;
console.log("shoot destroyed");
}
});
есть память не утечка –
Хотя есть ответ здесь, который был принят, есть дополнительные вещи, которые вы можете рассмотреть, если вы используете three.js. Поиск стека для чего-то типа "delete.txt.js" – 2pha