在Unity中,我们可以使用以下代码将相机旋转限制在一定范围内:
public float xMinLimit = -30f; public float xMaxLimit = 90f; public float yMinLimit = -30f; public float yMaxLimit = 30f; public float zMinLimit = -10f; public float zMaxLimit = 10f;
void LateUpdate() { if (Input.GetMouseButton(0)) { rotateCamera(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"), true); } }
void rotateCamera(float mouseX, float mouseY, bool dragging) { if (dragging) { float rotX = transform.eulerAngles.y + mouseX * 4; float rotY = transform.eulerAngles.x - mouseY * 4;
rotY = Mathf.Clamp(rotY, xMinLimit, xMaxLimit);
rotX = Mathf.Clamp(rotX, yMinLimit, yMaxLimit);
transform.rotation = Quaternion.Euler(rotX, rotY, 0f);
}
}
这段代码使得相机只能在x,y,z轴上的限制范围内旋转。 为了使这段代码正常工作,您需要将其添加到您的相机脚本中,并将xMinLimit、xMaxLimit、yMinLimit、yMaxLimit、zMinLimit和zMaxLimit设置为所需的值。请注意,这些值应该是在-180到180之间的值。 然后在您的Update函数中调用rotateCamera函数即可。