通过WASD按钮移动相机

问题描述

如何使用WAST键在Forge Viewer中控制相机?

我已经尝试过类似的事情。

        viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('forgeViewer'));
        viewer.start();
        
        addEventListener("keydown",function(event) {
            if (event.keyCode === 87) {
                console.log("W pressed")
                camera = viewer.getCamera()
                camera.translateZ(50)
                viewer.applyCamera(camera)
            }
        });

解决方法

您错过了EventListener对象,应该是:

  1. 打字稿:
document.addEventListener('keyup',(event)=>{});
  1. javascript:
$(document).bind('keyup',(event)=>{});
,

对于按键事件,我建议您对HotKeyManger进行一些试验。 这样的事情应该起作用:

const hotkeys = [{
    keycodes: [
        Autodesk.Viewing.KeyCode.w
    ],onRelease: (e) => console.log("Just pressed the W")
},{
    keycodes: [
        Autodesk.Viewing.KeyCode.s
    ],onRelease: (e) => console.log("Just pressed the S")
},{
    keycodes: [
        Autodesk.Viewing.KeyCode.a
    ],onRelease: (e) => console.log("Just pressed the A")
},{
    keycodes: [
        Autodesk.Viewing.KeyCode.d
    ],onRelease: (e) => console.log("Just pressed the D")
}];


let manager  = this.viewer.getHotkeyManager()

manager.pushHotkeys("HZ",hotkeys)

顾名思义,它适用于热键,但也适用于单键。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...