unity 第一人称角色视角旋转代码实现
时间: 2023-07-31 21:07:29 浏览: 121
在 Unity 中,第一人称角色视角旋转可以通过修改摄像机的旋转来实现。以下是一个简单的代码示例:
```csharp
public class FirstPersonCamera : MonoBehaviour
{
public float sensitivity = 100f; // 视角灵敏度
private float _rotationX = 0f;
void Start()
{
Cursor.lockState = CursorLockMode.Locked; // 锁定鼠标
}
void Update()
{
float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
_rotationX -= mouseY;
_rotationX = Mathf.Clamp(_rotationX, -90f, 90f); // 限制视角范围
transform.localRotation = Quaternion.Euler(_rotationX, 0f, 0f);
transform.parent.Rotate(Vector3.up * mouseX);
}
}
```
在这个示例中,我们首先定义了视角的灵敏度(即鼠标移动的距离与视角旋转的比例)。然后,在 `Start` 方法中锁定了鼠标,确保玩家可以自由旋转视角。在 `Update` 方法中,我们获取鼠标的移动距离,并将其应用到 `_rotationX` 和父对象的旋转上。最后,我们使用 `Mathf.Clamp` 方法来限制视角的旋转范围,确保玩家不会旋转过头。
这只是一个简单的示例,你可以根据自己的需求进行修改和优化。
阅读全文