Aframe 如何检查用户是否使用耳机而不是鼠标?

Aframe 如何检查用户是否使用耳机而不是鼠标?,aframe,Aframe,因此,我将确定只有当用户使用耳机时,光标的保险丝是否会被激活。我想提供两种不同的行为,这取决于他是用鼠标导航还是用HMD导航。我如何检查呢?您可以使用一个frame.utils.device.checkHeadsetConnected()()查询耳机是否存在,但这并不能告诉您他们是否正在使用连接的耳机 当用户进入全屏/vr模式()时,您的a-scene实体将发出'enter-vr'事件,因此您可以在此时检查他们是否连接了耳机,并知道他们是否处于耳机vr模式: window.addEventLis

因此,我将确定只有当用户使用耳机时,光标的保险丝是否会被激活。我想提供两种不同的行为,这取决于他是用鼠标导航还是用HMD导航。我如何检查呢?

您可以使用
一个frame.utils.device.checkHeadsetConnected()
()查询耳机是否存在,但这并不能告诉您他们是否正在使用连接的耳机

当用户进入全屏/vr模式()时,您的
a-scene
实体将发出
'enter-vr'
事件,因此您可以在此时检查他们是否连接了耳机,并知道他们是否处于耳机vr模式:

window.addEventListener('enter-vr', e => {
  if (AFRAME.utils.device.checkHeadsetConnected()) { /* modify cursor */ }
});
但是,这不包括使用简单查看器的mobile的用例(它不会触发
checkHeadsetConnected
),因此您还需要检查
ARAME.utils.device.isMobile()
()

您可能还希望为非移动设备上的退出vr添加另一个侦听器,并将光标恢复为单击模式

window.addEventListener('enter-vr', e => {
  if (AFRAME.utils.device.checkHeadsetConnected() ||
      ARAME.utils.device.isMobile()) { /* modify cursor */ }
});