我的虚拟现实实验的交互是基于点击对象。我希望它能在桌面上(用鼠标),在纸板上(用一个凝视光标),或者用3或6dof的控制器(比如Oculus Go)。
我如何让它根据可用的内容进行切换?
这是我现在所拥有的:
<a-scene antialias="true" cursor="rayOrigin:mouse">
<a-entity laser-controls="hand: right"></a-entity>
...</a-scene>这适用于桌面和OGO,但不适用于Cardboard。我相信我可以为凝视光标添加一个<a-cursor>,但它一直都在那里--我只想在用户进入Cardboard时显示它。
这个是可能的吗?我该怎么做呢?我可能需要编写一些javascript才能让它工作吗?
发布于 2018-08-09 19:00:45
如果您可以拥有<a-camera>实体,则可以创建自定义组件,该组件将仅在移动设备上添加fuse光标。
你甚至可以有一个这样的设置:
<a-camera>
<a-entity cursor-check></a-entity>
</a-camera>并在需要时将cursor添加到空实体中。
检查您是否在使用移动设备:
AFRAME.registerComponent("cursor-check", {
....
if(!AFRAME.utils.device.isMobile()) return;并在必要时添加光标组件
this.el.setAttribute("cursor", {
"fuse": "true",
"fuse-timeout": "500"
})
...请查看here。
正如尼克所指出的,还有两个可以帮助区分你是在使用oculus go,还是在使用gear vr:
AFRAME.utils.device.isOculusGo ()
AFRAME.utils.device.isGearVr ()也许checkHeadsetConnected ()也能帮上忙
https://stackoverflow.com/questions/51750339
复制相似问题