正如标题所示,我想在 ThreeJS 中移动相机。我目前让相机在 mousedown 上移动,使其围绕它看起来的点,我想让键盘控制在 x 和 z 中移动相机,从而移动它看起来的点以及相机的位置。lookAt 目标当前为 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();
我查看了示例并搜索了 Internet,但没有找到此设置。我的猜测是我会使用一些 transformWorldMatrix 或使用相机的旋转来获取方向,然后添加一个运动值。
我敢肯定它不是非常棘手,我只是无法绕开它。所以; 我将如何在世界 X 和 Z 中移动相机的位置?对不起,如果这是一个菜鸟问题。