Unity 中的旋转问题?

Issue with rotation in Unity?

我正在尝试使用脚本围绕 Y 轴旋转我的游戏对象:

    rotateDir = Input.GetAxis("Horizontal");
    rb.AddRelativeTorque(Vector3.up * rotateDir * rotateForce);

但是我的游戏对象开始倾斜(最后一张图片):

我已经更改了碰撞器,检查了我的代码(我看不到任何错误)<但它仍然无法正常工作。有人可以帮助我吗?谢谢

在unity中旋转gameObject的方式有很多种。但最好的旋转方式是使用 EularAngles

// Transform.eulerAngles represents rotation in world space
void Update() {
  currentEulerAngles += new Vector3(x, y, z) * Time.deltaTime * rotationSpeed;

  //apply the change to the gameObject
  transform.eulerAngles = currentEulerAngles;
}
private void Update()
    {
        RotateTowardsYDirection();
    }

    public void RotateTowardsYDirection()
    {
        ////transform object to rotate with some rotation factor value
        objectToRotate.Rotate(0, Input.GetAxis("Horizontal") * yRotationFactor * Time.deltaTime, 0);
    }