InControl - 如何平滑地旋转播放器

时间:2016-08-24 14:04:27

标签: c# unity3d rotation interpolation

我使用InControl input manager作为我的项目。我使用右手杆的输入旋转我的播放器对象,但我希望播放器能够顺利旋转而不是瞬间旋转。

这是我目前的代码:

void FixedUpdate()
{
    var device = InputManager.ActiveDevice;

    MoveThePlayer(device.LeftStick.X, device.LeftStick.Y);
    RotateThePlayer(device.RightStick.X, device.RightStick.Y);
}


void MoveThePlayer(float movex, float movey)
{
    body.velocity = new Vector2(movex * speed, movey * speed);
}

void RotateThePlayer(float movex, float movey)
{
    float heading = Mathf.Atan2(movey, movex);
    transform.rotation = Quaternion.Euler(0f, 0f, heading * Mathf.Rad2Deg);
}

1 个答案:

答案 0 :(得分:0)

Lerps是你的朋友。

transform.Rotate()您的玩家使用Time.deltaTime

指向您想要的角度

示例:

transform.Rotate(0, 0, (angleIWantToBeAt - transform.eulerAngles.z) * Time.deltaTime * speedMultiplier)