Единство как получить Transform.forward в плавающей форме - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать движение в воздухе для трехмерного платформера, и я пытаюсь использовать transform.forward и transform.right как плавающие объекты.Однако я не могу понять, как их преобразовать в значения с плавающей запятой, поскольку они являются переменными Vector3.Вот что я попробовал:

velX = transform.forward * Input.GetAxis("Horizontal");
velZ = transform.right * Input.GetAxis("Vertical");

Я получил ошибку, в которой transform.forward и transform.right - это значения Vector3, тогда как velX и velZ - числа с плавающей запятой.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Разобрался:

velX = (transform.forward.x + transform.right.x) * Input.GetAxis("Horizontal");
velZ = (transform.forward.z + transform.right.z) * Input.GetAxis("Vertical");
0 голосов
/ 15 февраля 2019

Не совсем уверен, чего вы пытаетесь достичь, но если вы ищете скалярное представление вектора, то есть фактической длины вектора, тогда Vector3.magnitude получит его.Он вернет расстояние между заданным началом вектора и его конечной точкой.

Вы можете получить величину вектора, позвонив:

Vector3.magnitude(point.forward)

И я почти уверен, что вы даже можете сделать:

point.forward.magnitude

Вы можете перейти сюда и здесь для дальнейшего ознакомления.

Опять же, я не уверен, что вы пытаетесьполучить, но я надеюсь, что это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...