Quaternion.LookRotation()如何工作

时间:2019-03-08 18:09:00

标签: unity3d quaternions

我试图建立一个立方体来查看我发现以下代码的鼠标:

 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);
        }

我不明白为什么他为什么要从transform.position中减去targetPosition?

1 个答案:

答案 0 :(得分:1)

Documentation LookRotation(Vector3 forward, Vector3 upwards = Vector3.up)

LookRotation将方向矢量转换为Quaternion。在此示例中,他想要两点之间的角度。通过减去两个位置矢量,您可以获得点之间的距离并将该距离矢量转换为Quaternion

upwards仅用作参考。您可以将其设置为自己喜欢的任何内容,但是如果将其保留为空白(在这种情况下为默认),则默认为Vector3.up