不想使用Input.GetAxis
时间: 2023-07-11 08:37:12 浏览: 43
如果你不想使用 `Input.GetAxis` 来获取鼠标输入,你可以使用以下代码来替代:
```csharp
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float rotateSpeed = 5f;
private Vector2 lastMousePosition;
private void Update()
{
if (Input.GetMouseButton(0))
{
Vector2 currentMousePosition = Input.mousePosition;
Vector2 mouseDelta = currentMousePosition - lastMousePosition;
lastMousePosition = currentMousePosition;
float horizontalInput = mouseDelta.x;
float verticalInput = mouseDelta.y;
transform.Rotate(-verticalInput * rotateSpeed, horizontalInput * rotateSpeed, 0);
}
else
{
lastMousePosition = Input.mousePosition;
}
}
}
```
这个脚本使用 `Input.mousePosition` 来获取鼠标位置,并使用一个变量 `lastMousePosition` 来存储上一帧的鼠标位置。在每一帧中,我们计算鼠标位置的变化量 `mouseDelta`,然后将其转换为旋转角度。如果鼠标左键没有按下,我们将 `lastMousePosition` 设置为当前鼠标位置,以便在下一帧中计算变化量。