Я довольно долго делал 3D-игру и остановился на сложной проблеме с элементами управления. Я использую пользовательские элементы управления указателем и хочу, чтобы вращение велось как три. js TrackballControls
.
Мой код:
function animate() {
requestAnimationFrame(animate);
camera.position.x = (Math.sin(euler.y) - Math.sin(euler.x)) * zoomValue + lastPlayerX;
camera.position.z = (Math.cos(euler.y) - Math.sin(euler.x)) * zoomValue + lastPlayerZ;
camera.position.y = -Math.sin(euler.x) * zoomValue + lastPlayerY;
composer.render();
}
animate();
lastPlayerX
, lastPlayerY
и lastPlayerZ
являются осями положения игрока (которые являются целью, вокруг которой должна вращаться камера), euler
- это THREE.Euler
, представляющий поворот камеры, и zoomValue
- это то, как далеко камера должна уменьшать масштаб.
Основная загадка - это метод расчета, так что я должен сделать, чтобы камера вращалась вокруг игрока? (только вокруг оси X и Y).