在 VR 中启用轨道控制

enable orbit controls in VR

我正在使用 Kevin Ngo 的 k 帧包中的轨道控件: https://github.com/ngokevin/kframe/tree/master/components/orbit-controls/

这些控件允许您围绕场景旋转相机,营造出围绕您的视点旋转场景的印象。 不幸的是,当进入 VR 模式时,组件会自动切换到场景中心的第一人称视角控件。

对于我的项目,我想保持轨道视角和轨道控制,即使在 VR 中也是如此。我想,这可以通过在检查是否输入 VR 后禁用该部分代码来实现。

    el.sceneEl.addEventListener('enter-vr', () => {
  if (!AFRAME.utils.device.checkHeadsetConnected() &&
      !AFRAME.utils.device.isMobile()) { return; }
  this.controls.enabled = false;
  if (el.hasAttribute('look-controls')) {
    el.setAttribute('look-controls', 'enabled', true);
    oldPosition.copy(el.getObject3D('camera').position);
    el.getObject3D('camera').position.set(0, 0, 0);
  }
});

orbit-controls 组件直接在 three.js 摄像机上运行,​​而不是在 aframe 级别运行 - 但是,vr 摄像机由 aframe 管理。到目前为止,我尝试的所有操作都以场景中心的 vr 相机结束..

我设法在 VR 模式下看到相机在场景中移动 - 但是,我卡在了我的 VR 位置

我建议改为创建和旋转模型/场景的父级 a-entity。如您所见,移动相机会与 look-controls 发生碰撞,这会让用户感到不舒服,并且可能会引起晕车。