Три js — объекта перемещаются к камере

#javascript #three.js

#javascript #three.js

Вопрос:

У меня есть объект, который я хочу переместить непосредственно к камере при правильном вводе.

Я взглянул Object3d.translateOnAxis(axis, distance) , но, похоже, я не могу установить axis (локальную ось объекта) так, чтобы она всегда была обращена к камере. Это может быть связано с тем, что объект также вращается.

Поскольку у меня есть несколько объектов на сцене, мне нужно, чтобы объекты перемещались к камере.

Ответ №1:

Я понял, как заставить его работать. Допустим, я хочу object двигаться к точке (0, 0, 25) в мировых координатах. object.translateOnAxis(object.worldToLocal(new THREE.Vector3(0,0,25)),50); заставит объект перемещаться на 50 единиц в направлении точки (0, 0, 25) от его текущего местоположения.

Ответ №2:

Для меня то, что работает для перемещения объекта на 5 метров, это:

 var dir = new THREE.Vector3();
dir.subVectors(camera.position, object.getWorldPosition(dir)).normalize();
object.translateOnAxis(dir, 5);