0
所以,我会确定只有当用户使用耳机时,我的光标保险丝才会被激活。我想提供两种不同的行为,具体取决于他是使用鼠标还是HMD进行导航。我该如何检查?如何检查用户是否使用耳机而不是鼠标?
所以,我会确定只有当用户使用耳机时,我的光标保险丝才会被激活。我想提供两种不同的行为,具体取决于他是使用鼠标还是HMD进行导航。我该如何检查?如何检查用户是否使用耳机而不是鼠标?
您可以使用AFRAME.utils.device.checkHeadsetConnected()
(docs)查询耳机是否存在,但这并不告知您他们是否实际使用连接的耳机。
你a-scene
实体会发出当用户进入全屏的事件/ VR模式(docs),这样你就可以在那个时候检查他们是否有耳机连接,并且知道他们是否在耳机模式:减震装置
window.addEventListener('enter-vr', e => {
if (AFRAME.utils.device.checkHeadsetConnected()) { /* modify cursor */ }
});
然而,这并不能掩盖移动的一个简单的浏览器使用情况下(这不会触发checkHeadsetConnected
),所以你还需要检查ARAME.utils.device.isMobile()
(docs)
window.addEventListener('enter-vr', e => {
if (AFRAME.utils.device.checkHeadsetConnected() ||
ARAME.utils.device.isMobile()) { /* modify cursor */ }
});
您可能还需要在非移动设备上为exit-vr
添加另一个侦听器,并将光标恢复为单击模式。