Я создаю кнопки взрыва и взрыва, которые перемещают все объекты me sh в сцене от центра ограничивающей рамки, как вы можете видеть. кнопка взрыва работает нормально для всех моих объектов me sh, но кнопка взрыва не переводит мой me sh в предыдущие позиции. возможно, проблема в физике, надеюсь, кто-нибудь может помочь.
function explodeObjects() {
var boundingbox = new THREE.Box3();
for (var i = 0; i < scene.children.length; i++) {
if (scene.children[i] instanceof THREE.Mesh) {
var mesh = scene.children[i];
var position = scene.children[i].position;
var distance = 5;
var direction = position.clone().normalize();
pointNew = position.clone().addScaledVector(direction, distance);
var x = Math.trunc(pointNew.x, );
var y = Math.trunc(pointNew.y);
var z = Math.trunc(pointNew.z);
stepToExplode(mesh, x, y, z);
}
}
function stepToExplode(mesh, x, y, z) {
var tween = new TWEEN.Tween(mesh.position).to({
x: x,
y: y,
z: z
}, 2000).start();
tween.easing(TWEEN.Easing.Linear.None);
}
}
function implodeObjects() {
var boundingbox = new THREE.Box3();
for (var i = 0; i < scene.children.length; i++) {
if (scene.children[i] instanceof THREE.Mesh) {
boundingbox.expandByObject(scene.children[i]);
}
}
for (var i = 0; i < scene.children.length; i++) {
if (scene.children[i] instanceof THREE.Mesh) {
var from = boundingbox.getCenter(new THREE.Vector3());
var mesh = scene.children[i];
var position = scene.children[i].position;
var distance = 5;
var direction = position.clone().normalize();
var pointNew = position.clone().addScaledVector(direction, distance);
var x = Math.trunc(pointNew.x, );
var y = Math.trunc(pointNew.y);
var z = Math.trunc(pointNew.z);
stepToImplode(from, mesh, x, y, z)
}
}
function stepToImplode(from, mesh, x, y, z) {
var tween2 = new TWEEN.Tween(mesh.position).to({
x: mesh.position.x - x,
y: mesh.position.y - y,
z: mesh.position.z - z
}, 2000).start();
tween2.easing(TWEEN.Easing.Linear.None);
}
}