是否可以根据照相机的转动方向改变照相机的移动方式?

时间:2019-10-30 20:07:36

标签: javascript three.js

我刚发现three.js,并想用它制作一个3D小房间。 我需要的关键之一是相机移动。问题在于,当您转弯并尝试朝某个方向移动时,该移动将被锚定,就像您一直向前看一样。是否有任何方法可以根据当前旋转自动调整相机的移动方向?我正在使用PerspectiveCamera。

我一直在使用repl.it在静态HTML页面上运行代码。我尝试使用一些代码来交换方向,但这并不会改变相机旋转时的移动方向。

此代码用于移动:

function up() {
  y += .05;
  camera.position.y += y;
}
function down() {
  y += .05;
  camera.position.y -= y;
} // and so on and so forth

这是转向:

function turn() {
  if ((moveY / 2) > 0) {
    camera.rotation.y += (moveY / 2);
  }
  if ((moveX / 2) > 0) {
    camera.rotation.x += (moveX / 2);
  } if ((moveX / 2) < 0) {
    camera.rotation.x += (moveX * 2);
  } if ((moveY / 2) < 0) {
    camera.rotation.y += (moveY * 2);
  }
}

当您旋转然后移动时,发生的事情(这是正确的)是相机相对于世界中心移动。此外,还有一件事:如果我创建了一个相对于相机位置不可见的对象并允许相机围绕它移动/旋转,该怎么办?

1 个答案:

答案 0 :(得分:0)

使用three.js的移动脚本。