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

时间:2016-08-16 21:44:00

标签: aframe

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

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

1 个答案:

答案 0 :(得分:10)

我们可以使用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