@aresouji

Как организовать движение персонажа опираясь на входящий Vector3?

Всем доброго!

Вот фрагмент кода, заставляющий двигать объект:
Vector3 InputVector = joystick.GetInputVector();

this.gameObject.transform.position += InputVector * 3 * Time.deltaTime;


Проблема в том, что при повороте персонажа (если я развернул его на 45 градусов в transform.rotation.x например) и джойстиком перемещаю персонажа вперед, он идет боком, то есть в ту сторону в которую он был повернут изначально, я бы хотел добиться движения вперед (влево, вправо, назад) относительно камеры, то бишь, если персонаж смотрит на юг, и я тащу джойстик вперед, чтобы и персонаж двигался на юг.

Что подскажете по этому поводу?

Всем заранее спасибо. Извиняюсь за такую формулировку вопроса, в этой области я еще очень зеленый.
  • Вопрос задан
  • 854 просмотра
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Для таких целей подойдёт Transform.TransformDirection. Джойстик даёт вам направление в локальных координатах персонажа, а менять вы хотите мировые координаты. Берёте вектор из джойстика, преобразовываете с помощью TransformDirection, а потом используете новый вектор как раньше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Pparma
Сделайте персонажу родительский объект и применяйте повороты к нему, а перемещение задавайте в localPosition персонажа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы