Уже бьюсь 2й день, ни как не могу сделать нормальный поворот игрока(кораблик) за курсором мыши в 2д.
Уже и велосипед начал изобретать и геометрию вспоминать...
Получаю координаты курсора вот так
Синтаксис:
Используется java
var mouseCoordinates:Vector3 = Vector3(-Input.GetAxis("Mouse Y"), 0, Input.GetAxis("Mouse X"));
mouseCoordinates *= 10 * Time.deltaTime*12.0; // You can also add a sensivity value here
target.transform.Translate(mouseCoordinates);
mouseCoordinates *= 10 * Time.deltaTime*12.0; // You can also add a sensivity value here
target.transform.Translate(mouseCoordinates);
Пробовал
Синтаксис:
Используется java
player.transform.LookAt(target);
Вертиться подурному.
Пробовал велосипед
Синтаксис:
Используется java
v1=target.transform.position.x;
v2=target.transform.position.y;
a1=player.position.x;
a2=player.position.y;
if (v1>=a1)
{h=v1-a1;}
else
{h=a1-v1;}
if (v2>=a2){w=v2-a2;}else{w=a2-v2;}
angle=Mathf.Sqrt(h*h+w*w);
player.transform.rotation=Quaternion.Euler(angle, 0,0 );
v2=target.transform.position.y;
a1=player.position.x;
a2=player.position.y;
if (v1>=a1)
{h=v1-a1;}
else
{h=a1-v1;}
if (v2>=a2){w=v2-a2;}else{w=a2-v2;}
angle=Mathf.Sqrt(h*h+w*w);
player.transform.rotation=Quaternion.Euler(angle, 0,0 );
Тоже не то.
Пробовал как из урока с турелью
Синтаксис:
Используется java
var targetRotation = Quaternion.LookRotation(target.position - player.transform.position, Vector3.right);
player.transform.rotation = Quaternion.Slerp(player.transform.rotation, targetRotation, Time.deltaTime * 1.2);
player.transform.rotation = Quaternion.Slerp(player.transform.rotation, targetRotation, Time.deltaTime * 1.2);
Вроде неплохо только в 3d, крутиться по всем осям.
Подскажите, как сделать правильно, просто поворачивать объект за курсором мыши, проще говоря курсор мыши прицел, ну и игрок за ним поворачивается в 2х координатах. Спасибо.