three.js 使用 controls/PointerLockControls.js - 让相机移动到它在 Z 轴上面向的位置?

three.js using controls/PointerLockControls.js - make camera move where it's facing in Z axis?

我正在使用 three.js git 中的示例代码: https://github.com/mrdoob/three.js/blob/master/examples/js/controls/PointerLockControls.js

我怎样才能改变它,而不是 W/S 只在原来的 Z 轴上移动,我的相机移动到我看的地方?所以,如果我向上看,我会向上移动。

我试着从其他问题中读到这个,但无法弄清楚我需要的确切代码行,因为我是 three.js 的新手。 GIT 中的其他示例也没有帮助我,反而让我更加困惑。

好吧,我尝试了不同的方法,找到了最简单的答案。不过我不确定它是否有效。

if (moveForward) camera.translateZ(-moveSpeed * speedMultiplier);
if (moveBackward) camera.translateZ(moveSpeed * speedMultiplier);

if (moveLeft) camera.translateX(-moveSpeed * speedMultiplier);
if (moveRight) camera.translateX(moveSpeed * speedMultiplier);

if (moveUp) camera.translateY(moveSpeed * speedMultiplier);
if (moveDown) camera.translateY(-moveSpeed * speedMultiplier);

我使用相同的事件布尔变量,但我没有使用所有 "delta" 和其他代码,而是使用这个简化版本。简单的翻译。 [speedMultiplier 让我可以通过 SHIFT 键和另一个按键事件来切换速度。]