Расчет LookAt без применения - PullRequest
0 голосов
/ 08 февраля 2019

Мне нужно зажать вращение кости при использовании LookAt.

Функция LookAt отлично работает, но, насколько мне известно, LookAt не предлагает никаких возможностей зажима.не дает возможности увидеть результирующее вращение, не применяя его к преобразованию.

Поэтому я хотел бы знать, возможно ли сначала вычислить результаты LookAt, не применяя его сначала.

Ответы [ 2 ]

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

Вычислите вектор направления, который вам нужен:

Vector3 direction = bone.transform.position - targetTransform.position;

Используйте Quaternion.LookAt, чтобы рассчитать необходимое вам вращение:

Quaternion newRotation = Quaternion.LookAt(direction);

Теперь выполните любую математику, которую вы хотите выполнить на прилагаемомвращение, например, если вы хотите поворачивать кость максимум на 10 градусов в секунду, вы должны сделать это:

newRotation = Quaternion.RotateTowards(bone.transform.rotation, newRotation, 10f * time.deltaTime);

Наконец, примените вращение к кости:

bone.rotation = newRotation;
0 голосов
/ 08 февраля 2019

Просто примените LookAt, посмотрите результат и затем закрепите результат, применяя окончательный поворот.

Нередко применяются промежуточные преобразования во время кадра (функция update или аналогичная).Важно то, что в конце функции Update (или LateUpdate или FixedUpdate) преобразование будет желаемым.

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