如何在A-Frame中检测桌面、移动设备、GearVR、Oculus Rift和Vive?

10
在 A-Frame 中,我想要检测用户是否连接了 VR 头盔,并告诉他们使用的设备是哪个。我该如何做到这一点?
  • 桌面电脑(没有 VR 显示器)
  • 移动设备(例如,经过 WebVR 转换的 Google Cardboard,iPhone,Android)
  • Samsung GearVR
  • Oculus Rift
  • HTC Vive
1个回答

12

在 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 参数:https://w3c.github.io/webvr/#interface-vrstageparameters


1
请注意,在0.4.0版本中,这些工具将移动到AFRAME.utils.device - ngokevin
代码在这里:https://github.com/aframevr/aframe/blob/master/src/utils/device.js - Remy Mellet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接