Unity限制上下旋轉角的問題

zlllIII發表於2024-09-13

在我想限制相機上下的視角角度時,用以下方法會出現視角動不了的問題。

float mouseX=Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
up_down.transform.Rotate(-mouseY, 0, 0);
up_down.transform.localEulerAngles= new Vector3(Mathf.Clamp(up_down.transform.localEulerAngles.x,-80,-20), 0, 0);

原因是localEulerAngles的範圍是0到360,超過360會直接變成0
改為以下方式得以解決

float mouseX=Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
up_down.transform.Rotate(-mouseY, 0, 0);
up_down.transform.localEulerAngles= new Vector3(Mathf.Clamp(up_down.transform.localEulerAngles.x,280,340), 0, 0);

相關文章