unity 获取鼠标移动距离
时间: 2023-09-26 15:05:54 浏览: 303
VB06-鼠标共移动的距离
你可以使用`Input.GetAxis` 来获取鼠标在水平和垂直方向上的移动距离,然后将这些值乘以一个比例因子来获得实际的距离。
以下是一个示例代码,它将鼠标的移动距离转换为相机的旋转角度:
```csharp
public class MouseLook : MonoBehaviour
{
public float sensitivity = 100f;
public Transform playerBody;
float xRotation = 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;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
playerBody.Rotate(Vector3.up * mouseX);
}
}
```
在这个例子中,我们使用`Input.GetAxis("Mouse X")` 和 `Input.GetAxis("Mouse Y")`来获取鼠标在水平和垂直方向上的移动距离。然后我们将这些值乘以灵敏度值,并乘以 `Time.deltaTime` 来获得每帧的实际距离。最后,我们将鼠标的移动距离转换为相机的旋转角度,并将其应用于相机和玩家的身体上。
阅读全文