做电脑3d射击游戏,esc被占用怎么办

我正在电脑上的3d射击游戏,
然后鼠标锁定画布,变成准心,这时我需要esc绑定的是菜单,
但是一按esc就变成退出鼠标锁定了,这可怎么办?
我需求是,鼠标全程锁定画布,全部都有准心。。。。按照电脑游戏惯例esc只能是菜单,不能是别的。。。求助解决方法

//
我现在是这么做的,抓取到网页的cocos的画布,然后给鼠标锁定上
public canvas:HTMLElement;
this.canvas = document.getElementById(“GameCanvas”);
this.canvas.requestPointerLock();
//
但是问题在这里,只要按esc他就退出去了,鼠标就出来了,我不想让esc被占用
我需求是按esc不要退出锁定,按esc应该是弹出游戏选项
document.pointerLockElement

    if (navigator.keyboard && navigator.keyboard.lock) {
        navigator.keyboard.lock(['Escape']);
    } else {
        console.log('您的浏览器上不支持该功能')
    }

可以锁住esc键,Navigator:keyboard 属性 - Web API | MDN 兼容性貌似不好,不知道有没有别的方法

1赞

我测试,没进入requestPointerLock状态时,可以lock键盘,但是在requestPointerLock状态时,好像按esc还是能退出来,有没有可能锁定鼠标状态时,浏览器的esc响应,是优先js解释器的?

官方不是有个赛博朋克项目吗?也是鼠键射击类的,你看看像不像

退出不是很合理吗? 反正用户都需要用鼠标点击菜单。
回归正题, 若果是点击esc 触发退出requestPointerLock, 那麽 再重新调用一次requestPointerLock呢?

看了,但是他也是一点就退出了,我希望像ue那样,永久锁定不退出

可以是可以,但是只能每次重新锁定吗,如果能像ue那样永久锁定不退出,就好了

你是基于浏览器运行, 浏览器为了安全性肯定是禁用某些功能, 除非你自己用electron作为游戏运行的载体就可以自定义了

好吧,明白了,看来用h5在浏览器里,是解决不了了。。。。