需要一个对象从当前位置旋转到新位置

时间:2019-07-10 10:14:10

标签: c# unity3d rotation

当事件触发被调用时,我希望GameObject从当前位置旋转到0,0,0。

我已经更新了我的代码,它确实可以运行并且可以执行我想要的操作,但是是否可以添加一个'speed'变量来控制Quaternion.identity之后旋转回0,0,0的速度?

非常感谢

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class rotate : MonoBehaviour
{

public GameObject spinme;
public float speed;

public void spin()

{
        spinme.transform.rotation = Quaternion.identity;
}

}

1 个答案:

答案 0 :(得分:1)

您可以将四元数逐渐应用到对象上(按所需的任意多个步骤),以使其随速度或时间而变化。

这称为插值。对于四元数,插值公式称为SLERP:

https://en.m.wikipedia.org/wiki/Slerp

研究它在unity3d中的工作方式。