我试图在 Android 设备上读取鼠标 Δ(delta)值,但似乎实现不了。
void Update()
{
var mouse = Mouse.current;
if (mouse == null) return;
Vector2 delta = mouse.position.ReadValue();
Debug.Log($"DELTA: {delta}");
SendMouseMove(delta.x, -delta.y);
}
这个函数工作正常但我却遇到困难:一旦鼠标移动至屏幕的边缘,读取到的 Δ 就变成 0。由于这份输入会导出到 PC 设备,这个设备的分辨率与 Android 设备不一致,此时鼠标会被困在一个可见区域内。
我的接下来的想法是锁定鼠标:
Cursor.lockState = CursorLockMode.Locked
然而此时我的鼠标不再被识别为鼠标,它被识别为键盘:
Device: Keyboard5 display=PCV2 Ver Mouse layout=Keyboard type=FastKeyboard
键盘当然是没有移动 Δ 的,所以此方法是完全无效的。
如何在读取移动 Δ 的 meantime 不被识别为键盘?
评论 (0)