在 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
发生碰撞,这会让用户感到不舒服,并且可能会引起晕车。
我正在使用 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
发生碰撞,这会让用户感到不舒服,并且可能会引起晕车。