unity 限制摄像头的上下移动的角度
时间: 2023-10-04 22:06:47 浏览: 276
你可以使用`Transform.Rotate`和`Mathf.Clamp`函数来限制摄像头的上下移动角度。
首先,你需要获取摄像头的Transform组件,然后使用`Input.GetAxis`来获取玩家的鼠标输入。你可以将鼠标输入与摄像头的旋转角度相加,然后使用`Mathf.Clamp`函数来限制上下移动的角度。
以下是一个简单的示例代码:
```csharp
public class CameraController : MonoBehaviour
{
public float sensitivity = 5.0f; // 玩家鼠标输入灵敏度
public float minimumAngle = -90.0f; // 摄像头最小角度
public float maximumAngle = 90.0f; // 摄像头最大角度
private float rotationX = 0.0f; // 摄像头绕X轴旋转的角度
void Update()
{
// 获取玩家的鼠标输入
float mouseX = Input.GetAxis("Mouse X") * sensitivity;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity;
// 绕Y轴旋转摄像头
transform.Rotate(0, mouseX, 0);
// 绕X轴旋转摄像头并限制角度
rotationX -= mouseY;
rotationX = Mathf.Clamp(rotationX, minimumAngle, maximumAngle);
transform.localEulerAngles = new Vector3(rotationX, transform.localEulerAngles.y, 0);
}
}
```
在这个示例代码中,我们使用`transform.localEulerAngles`来设置摄像头的旋转角度。`localEulerAngles`是一个三维向量,表示物体绕X、Y、Z轴旋转的角度。我们只需要限制绕X轴旋转的角度即可限制摄像头的上下移动角度。
阅读全文