unity鼠标控制物体旋转
时间: 2023-08-31 19:08:47 浏览: 135
你可以使用以下代码来实现Unity中鼠标控制物体旋转的功能:
```
public class MouseRotate : MonoBehaviour
{
public float sensitivity = 100.0f; // 旋转的灵敏度
public Transform target; // 要旋转的目标物体
private float rotationX = 0.0f;
private float rotationY = 0.0f;
void Start()
{
if (target == null)
{
target = transform; // 如果没有指定目标物体,则默认为当前物体
}
// 隐藏鼠标指针并锁定到屏幕中心
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
void Update()
{
// 获取鼠标移动的距离
float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
// 计算旋转角度
rotationX += mouseY;
rotationY += mouseX;
rotationX = Mathf.Clamp(rotationX, -90f, 90f);
// 应用旋转
target.localRotation = Quaternion.Euler(-rotationX, rotationY, 0.0f);
}
}
```
这个脚本可以挂载到任何一个需要旋转的物体上,然后通过设置目标物体来控制旋转。在 `Start()` 方法中,我们隐藏了鼠标指针并将其锁定到屏幕中心。在 `Update()` 方法中,我们获取鼠标的移动距离,并根据灵敏度和移动距离计算旋转角度。最后,我们将旋转应用到目标物体上,实现物体的旋转。
阅读全文