ThreeJS:如何独立于旋转将相机向左或向右移动?

ThreeJS: How to move the camera to the left or right independent of its rotation?

我有一个 ThreeJS 设置,相机可以在 3D 世界中移动,移动时它会改变 lookAt 多次。所以让我们假设 camera.getWorldDirection() 总是或多或少是随机的。

现在我需要相机相对于 camera.getWorldDirection() 向左/向右/向上/向下移动。
不能 只使用 camera.position.x += 1 之类的东西,因为它只适用于 Vector3(0, 0, -1) 的世界方向。如果世界方向改变为例如(1, -1, 0),向右移动相机确实需要改变 X 轴和 Z 轴。

我看过四元数和 4D 矩阵,但我无法理解它们。如果有人能帮助我,那就太好了。

这是一个演示:https://normanwink.com/demo/room/

我在一个未被接受的答案中找到了答案

你必须使用camera.translateX()和类似的函数来改变它的局部位置。这样你就可以随时操纵 camera.position 来移动它并使用 translate 函数来添加相对于相机视角的偏移量。