AFrame内置了许多很酷的东西,例如对诸如游戏手柄之类的控制器的支持。
他们在他们的文档中建议使用组件“ tracked-controls”,该组件将根据浏览器可用的组件选择正确的设备组件。在aframe v1.0.4的桌面模式下,这对我来说似乎根本不起作用
我正在使用
直接查询浏览器游戏手柄API时,可以找到游戏手柄。
我这样声明我的实体:<a-entity mycomponent tracked-controls></a-entity>
然后我可以看到框架,然后<a-entity mycomponent tracked-controls-webxr></a-entity>
按照文档中的说明进行转换。
mycomponent
然后,在我的自定义组件中,我想听游戏手柄事件,如下所示
events: {
"controllerconnected": function () {
log.info("controllerconnected");
},
"buttonchanged": function () {
log.info("buttonchanged");
}
},
但是我从来没有设法得到那些事件。
因此,我深入研究了源代码,以了解何时将Aframe附加到其内部的GamePad事件侦听器中,并且据我所知,所有这些都归结为isWebXRAvailable
在桌面模式下和component的存在下对变量的依赖tracked-controls-webxr
。
var isWebXRAvailable = module.exports.isWebXRAvailable = !window.debug && navigator.xr !== undefined;
那!window.debug
将几乎排除所有台式机浏览器吗?
所以我的问题是,桌面应该完全支持游戏手柄吗?
还是我完全错过了如何使用此功能的信息,如果是,请指出正确的方向:)
跟踪控件专为VR耳机随附的Vive Wands或Oculus Touch等空间跟踪控件而设计。传统游戏手柄没有开箱即用的支持。您可以使用Gamepad API手动集成或查看运动控件
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句