我使用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);
}
答案 0 :(得分:0)
Lerps是你的朋友。
transform.Rotate()
您的玩家使用Time.deltaTime
示例:
transform.Rotate(0, 0, (angleIWantToBeAt - transform.eulerAngles.z) * Time.deltaTime * speedMultiplier)