流程
- 定位问题,使用
Debug.LogError 打印日志,再勾选Development Build 进行build - 发现问题,
Input.GetAxis("Mouse X"); Input.GetAxis("Mouse Y"); ,获取结果永远是0 - 搜索相关文章,有类似问题,但是没解决方案
- 测一测其他Unity版本是否也有类似问题(测试是Unity2017,所以怀疑是Unity版本太低),结果Unity2020也出现了这个问题
- 解决问题,
Input.GetMouseButton 与 Input.mousePosition 是可以正常获取的,利用这两个方法去获取鼠标xy的位移速度
代码
private Vector3 _lastMousePos;
private Vector2 _mouseAxisXY;
private void UpdateMouseAxisXY()
{
var offset = Input.mousePosition - _lastMousePos;
_mouseAxisXY.x = offset.x / Screen.width;
_mouseAxisXY.y = offset.y / Screen.height;
_lastMousePos = Input.mousePosition;
}
private void Start()
{
_lastMousePos = Input.mousePosition;
}
private void Update()
{
UpdateMouseAxisXY();
Debug.Log($"MouseAxisXY:{_mouseAxisXY}");
}
|