如何在A-Frame中检测桌面与移动与GearVR与Oculus Rift与Vive的对比?

ngo*_*vin 10 aframe

在A-Frame中,我想检测用户是否连接了VR耳机并告诉他们正在使用哪个设备.我怎样才能做到这一点?

  • 桌面(无VR显示)
  • 移动(例如,webvr-polyfilled Google Cardboard,iPhone,Android)
  • 三星GearVR
  • Oculus Rift
  • HTC Vive

ngo*_*vin 11

我们可以使用A-Frame中的几个实用功能来检测兼容性:https://aframe.io/docs/master/core/utils.html

移动相关的工具看看navigator.userAgent.与VR相关的工具检查以查看从耳机/ polyfill返回的姿势数据是否不是0,0,0.

鉴于目前的API:

  • 桌面: !AFRAME.utils.checkHeadsetConnected()
  • 移动: AFRAME.utils.isMobile()
  • GearVR: AFRAME.utils.isGearVR()
  • Oculus Rift: !AFRAME.utils.isMobile() && AFRAME.utils.checkHeadsetConnected()
  • HTC Vive: !AFRAME.utils.isMobile() && AFRAME.utils.checkHeadsetConnected()

要区分Rift与Vive,请尝试使用WebVR API Stage Parameters https://w3c.github.io/webvr/#interface-vrstageparameters