旋转GameObject向下看

时间:2014-07-29 05:31:15

标签: rotation unity3d quaternions

我有一个简单的Unity3d脚本,它应该将GameObject移动到某个点并从上面向下看这个点。

我的脚本部分正常工作; GameObject正在移动到正确的点,但它不会从上面向下看。所以轮换是错误的。 GameObject翻转过来。

你能帮助我让我的GameObject直接向下看吗?

public class MoveTo : MonoBehaviour {

    private Vector3     targetPosition          = new Vector3(5, 10, 5);
    private Quaternion  targetRotation          = new Quaternion(90, 0, 0, 0);
    private float       speed                   = 6f;

    void LateUpdate () {

        transform.position  = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * speed);
        transform.rotation  = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * speed);
    }
}

1 个答案:

答案 0 :(得分:0)

Quaternion.Slerp采取"开始轮换"作为第一个参数。在您的代码中,transform.rotation每次执行LateUpdate()时都会更新。

您可以将原始旋转(在应用任何旋转之前)保存为变量originalRtn,并按transform.rotation = Quaternion.Slerp(originRtn, targetRotation, Time.deltaTime * speed);更新旋转。