0

在 Chrome 的未来版本中,有望使用 pointerLock 来获取鼠标的原始或未经调整的移动,即鼠标在通过操作系统传递函数之前的移动 [1]。

请求未调整移动的 pointerLock 的工作原理如下:

const promise = myCanvas.requestPointerLock({unadjustedMovement: true});
if (!promise) {
    console.log("disabling mouse acceleration is not supported");
}

似乎这目前仅适用于 Chrome(例如版本 88-91),并且仅在用户手动启用 chrome://flags/#enable-pointer-lock-options 时才有效。

我想检查浏览器是否支持 unadjustedMovement 而此时实际上没有请求 pointerLock 。因此,我的问题是是否有一种方法可以检查是否支持 unadjustedMovement 而无需请求指针锁。

更新: 以防万一,自然可以使用以下代码段对其进行检查。

function checkUnadjustedMovement() {
    const promise = document.body.requestPointerLock({unadjustedMovement: true});
    document.exitPointerLock()
    if (!promise) {
        return false;
    }
    return true;
}

但是,我不确定这是否会产生负面影响,更重要的是,它需要激活手势。即导致调用函数的单击。

[1] https://web.dev/disable-mouse-acceleration/

4

0 回答 0