沿z轴缓慢旋转对象

时间:2019-05-22 11:42:54

标签: c# unity3d

如何在z轴上缓慢旋转对象? 我有一个角度为z = 0的对象,并且希望它移动到z = 100。 我该怎么做,使其缓慢旋转约5秒钟?

    public Vector3 rotationDirection;

    public float durationTime;
    private float smooth;

      void Update()
    {
        smooth = Time.deltaTime * durationTime;
        transform.Rotate(rotationDirection * smooth);
    }

rotationDirection应该在(0,0,0)到(0,0,20)之间,但是到达角度后旋转不会停止。当达到(0,0,20)时如何停止?

1 个答案:

答案 0 :(得分:2)

使用Quaternion.RotateTowards完成了这项工作。

void Update()
{

Vector3 direction = new Vector3(0, 0, 20);
Quaternion targetRotation = Quaternion.Euler(direction);
transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, Time.deltaTime * 20f);

}