我试图在 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 不被识别为键盘?