Определите направление, в котором фактически движется объект - PullRequest
0 голосов
/ 27 мая 2020

В единстве я пытаюсь сравнить фактическое направление игроков с направлением, в котором они смотрят, и sh двигаться внутрь, но у меня есть серьезные проблемы с попыткой найти реальное направление движения.

Я могу определить смотреть направление очень легко с:

wishDir = transform.localEulerAngles;

Но я не могу понять, как получить направление движения объектов, чтобы я мог сравнивать. Я пробовал:

transform.InverseTransformDirection(rb.velocity);

Я ожидал бы, что это будет равно 0,90,0, когда я двигаюсь вправо, однако оно равно 0,0,0 (хотя прыгает при ускорении).

Как я могу определить направление, в котором движется объект?

1 Ответ

1 голос
/ 27 мая 2020

Я могу очень легко определить направление взгляда с помощью:

   wishDir = transform.localEulerAngles;

Это уже довольно странно для меня. localEulerAngles - это вращение в нотации пространства Эйлера в градусах на ось x,y,z .. это не «направление».

Обычно, если вам нужно направление, в котором вы смотрите, вы бы лучше использовать transform.forward

wishDir = transform.forward;

И тогда

transform.InverseTransformDirection(rb.velocity);

действительно должно возвращать направление в локальном пространстве.

Обратите внимание, что Debug.Log украшает (округляет) это значение, чтобы сделать его более читабельным. Если вам нужны точные значения, вы можете попробовать и зарегистрировать, например,

var relative = transform.InverseTransformDirection(rb.velocity);
Debug.Log(relative.ToString(F4));

, который должен печатать значения всегда с 4 цифрами после десятичной точки.

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