游戏对象不旋转以校正指定角度

时间:2017-06-22 18:45:12

标签: unity3d unity5

我使用以下代码在给定的时间段内旋转我的游戏对象:

    IEnumerator RotateMe(Vector3 byAngles, float inTime)
{
    Quaternion fromAngle = transform.rotation ;
    Quaternion toAngle = Quaternion.Euler(transform.eulerAngles + byAngles) ;
    for(float t = 0f ; t < 1f ; t += Time.deltaTime/inTime)
    {
        transform.rotation = Quaternion.Lerp(fromAngle, toAngle, t) ;
        yield return null ;
    }
}


public void runCoroutine(Vector3 destination)   {
    StartCoroutine(RotateMe(destination, 0.5f));
}

然后我用以下方式调用它:

runCoroutine(new Vector3(0,0,-90));

我通过测试意识到我的游戏对象没有旋转到指定的角度,而是关闭它们。不确定是什么导致了这一点。

1 个答案:

答案 0 :(得分:0)

我会说使用Lerp方法更好。对于与时间相关的确切事项,您必须引入lerp的速率。

\magento1.9\app

你可以控制&#34;值&#34;控制旋转速度。我通常使用这种方法来控制旋转。

注意:确保在&#34;每帧&#34;方法调用;更新/固定更新/晚更新