#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);