首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在凝视和激光之间切换?

如何在凝视和激光之间切换?
EN

Stack Overflow用户
提问于 2018-08-08 23:23:37
回答 1查看 347关注 0票数 0

我的虚拟现实实验的交互是基于点击对象。我希望它能在桌面上(用鼠标),在纸板上(用一个凝视光标),或者用3或6dof的控制器(比如Oculus Go)。

我如何让它根据可用的内容进行切换?

这是我现在所拥有的:

代码语言:javascript
复制
<a-scene  antialias="true" cursor="rayOrigin:mouse">
  <a-entity laser-controls="hand: right"></a-entity>
...</a-scene>

这适用于桌面和OGO,但不适用于Cardboard。我相信我可以为凝视光标添加一个<a-cursor>,但它一直都在那里--我只想在用户进入Cardboard时显示它。

这个是可能的吗?我该怎么做呢?我可能需要编写一些javascript才能让它工作吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-09 19:00:45

如果您可以拥有<a-camera>实体,则可以创建自定义组件,该组件将仅在移动设备上添加fuse光标。

你甚至可以有一个这样的设置:

代码语言:javascript
复制
<a-camera>
  <a-entity cursor-check></a-entity>
</a-camera>

并在需要时将cursor添加到空实体中。

检查您是否在使用移动设备:

代码语言:javascript
复制
AFRAME.registerComponent("cursor-check", {
....
    if(!AFRAME.utils.device.isMobile()) return;

并在必要时添加光标组件

代码语言:javascript
复制
    this.el.setAttribute("cursor", {
       "fuse": "true",
       "fuse-timeout": "500"
    })
...

请查看here

正如尼克所指出的,还有两个可以帮助区分你是在使用oculus go,还是在使用gear vr:

代码语言:javascript
复制
AFRAME.utils.device.isOculusGo ()
AFRAME.utils.device.isGearVr ()

也许checkHeadsetConnected ()也能帮上忙

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51750339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档