Объект поворачивается к точке, которую я выберу курсором на карте (кидается рейкаст, считываются координаты. не суть).
Поворот осуществляю таким образом:
Код
Vector3 dir = needPos - Player.position;
dir.y = 0;
Quaternion rot = Quaternion.LookRotation(dir);
Player.rotation = Quaternion.Lerp(Player.rotation, rot, Time.deltaTime * 5);
Далее нужно проверить: если мы повернлись достаточно, т.е. смотрим уже на ту самую точку - двигаемся к ней.
Код
if(Player.rotation != rot)
Player.rotation = Quaternion.Lerp(Player.rotation, rot, Time.deltaTime * 5);
else
Player.position = Vector3.MoveTowards(Player.position, needPos, Time.deltaTime * 5);
Проблема в том, что если мы выберем точку ЗА спиной объекта, градусы будут отрицательные, а в условии мы ждем положительных. И получается, что объект поворачивается на точку, но не двигается, т.к. условие не выполняется.
Пробовал брать в условии не сами градусы поворота, а их модуль, дабы отрицательного числа не получилось, но все-же, не срабатывает условие.