Как работает Quaternion.LookRotation () - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь сделать куб, чтобы посмотреть на мышь, я нашел следующий код:

 RaycastHit hit;
        if(Physics.Raycast(ray, out hit))
        {
            Vector3 targetPosition = new Vector3(hit.point.x, transform.position.y, hit.point.z);

            Quaternion rotation = Quaternion.LookRotation(targetPosition - transform.position);

            transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime * 10.0f);
        }

Не понимаю, почему он вычел targetPosition из transform.position?

1 Ответ

1 голос
/ 08 марта 2019

Документация LookRotation(Vector3 forward, Vector3 upwards = Vector3.up)

LookRotation преобразует вектор направления в Quaternion. В этом примере он хочет угол между двумя точками. Вычитая два вектора положения, вы можете получить расстояние между точками и преобразовать этот вектор расстояния в Quaternion.

upwards просто используется в качестве ссылки. Вы можете установить его на что угодно, но если вы оставите это поле пустым (как в данном случае), по умолчанию оно будет Vector3.up.

...