Three.js 三个JS摄像头控制鼠标+;kbd

Three.js 三个JS摄像头控制鼠标+;kbd,three.js,Three.js,正如标题所示,我想把相机分成三个部分移动。 我现在让相机在鼠标上向下移动,使它环绕一个看起来像的点,我想让键盘控件在x和z方向移动相机,从而移动它看起来像的点以及相机的位置。注视目标当前为0,0,0 在尝试了translateX和translateZ之后,它将相对于自身的倾斜和角度移动相机位置。因此,向下看,“向前”将使相机在世界Y轴上向下移动,我只想在世界X和Z轴上移动它。 相机是透视的,如果有关系的话,滚轮设置轨道卷云的无线电波。 版本是r55 下面是当前的代码(大部分是从示例中复制的),它

正如标题所示,我想把相机分成三个部分移动。 我现在让相机在鼠标上向下移动,使它环绕一个看起来像的点,我想让键盘控件在x和z方向移动相机,从而移动它看起来像的点以及相机的位置。注视目标当前为0,0,0

在尝试了
translateX
translateZ
之后,它将相对于自身的倾斜和角度移动相机位置。因此,向下看,“向前”将使相机在世界Y轴上向下移动,我只想在世界X和Z轴上移动它。 相机是透视的,如果有关系的话,滚轮设置轨道卷云的无线电波。 版本是r55

下面是当前的代码(大部分是从示例中复制的),它根本不会移动相机

if (userMouse.isDown){
    theta = - ( ( userMouse.position.x - userMouse.down.position.x ) * userMouse.acceleration ) +  userMouse.down.theta;
    phi = ( ( userMouse.position.y - userMouse.down.position.y ) * userMouse.acceleration ) + userMouse.down.phi;
    phi = Math.min( 160, Math.max( 20, phi ) );
}

camera.position.x = userCam.radious * Math.sin( theta * Math.PI / 360 ) * Math.cos( phi * Math.PI / 360 );
camera.position.y = userCam.radious * Math.sin( phi * Math.PI / 360 );
camera.position.z = userCam.radious * Math.cos( theta * Math.PI / 360 ) * Math.cos( phi * Math.PI / 360 );
camera.lookAt(userCam.target);
camera.updateMatrix(); 
我浏览了一些例子,搜索了一些互联网站,但没有找到这种设置。 我的猜测是,我会使用一些变换矩阵或使用相机的旋转来获得方向,然后只添加一个运动值

我确信这不是很棘手,我只是不能把我的头绕在它周围。 所以我将如何在世界X和Z中移动相机,以确定其外观?
如果这是一个noob问题,很抱歉。

检查和示例代码,可能会很有用。谢谢,但它们都没有给我提示如何做。也许他们会,但我太胖了,弄不懂。