Unity-半球形的Quaternion.Slerp

时间:2018-07-23 13:07:55

标签: c# unity3d

我有一个轨道摄像机,正在半滑行中运动。我有一架上面有其他物体的飞机。在场景的中间,有一个空物体,我正在将其用作相机的支点,所有物体都按预期工作。我说平动层是因为我不想“降落”在飞机下面,实际上我可以控制它。

现在我想看一个物体,然后朝那个方向轻轻旋转。为此,我正在使用以下代码:

void Update () {

         // Smoothly rotates towards target 
         Vector3 targetPoint = myobj.transform.position;
         Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position, Vector3.right);
         transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2f);

     }

img link 1 img link 2

1 个答案:

答案 0 :(得分:3)

除非您确实要将向上方向指定为“ Vector3.right”,否则只需删除第二个参数:

void Update()
{
    // Smoothly rotates towards target 
    Vector3 targetPoint = myobj.transform.position;
    Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
    transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 2f);
}