unity3d鼠标控制第三人称物体旋转
时间: 2023-08-30 07:12:30 浏览: 114
你可以通过以下代码来实现鼠标控制第三人称物体旋转:
```csharp
public float mouseSensitivity = 100f;
public Transform playerBody;
float xRotation = 0f;
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
void Update()
{
float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
playerBody.Rotate(Vector3.up * mouseX);
}
```
这个代码中,你需要将脚本挂载到第三人称物体上。其中,`mouseSensitivity` 变量可以控制鼠标灵敏度,`playerBody` 变量是第三人称物体的 Transform 组件。
在 `Start()` 函数中,我们锁定了鼠标光标。
在 `Update()` 函数中,我们获取鼠标移动的距离,并根据这个距离计算出物体需要旋转的角度。在这里,我们使用了 `Mathf.Clamp()` 函数来限制 x 轴旋转角度的范围在 [-90, 90] 之间。最后,我们通过 `transform.localRotation` 和 `playerBody.Rotate()` 函数来实现物体的旋转。
阅读全文