【问题标题】:Is there a way to simulate VR input devices on WebVR - A-Frame?有没有办法在 WebVR - A-Frame 上模拟 VR 输入设备?
【发布时间】:2018-11-11 19:45:36
【问题描述】:

我目前正在使用 A-Frame 构建 WebXR (WebVR) 应用程序,并且 我并不总是能够随身携带控制器(Oculus Touch、Vive Controls)来测试它们。有没有办法“模拟”不同控制器发出的事件?

【问题讨论】:

标签: aframe webvr oculus htc-vive webxr


【解决方案1】:

我不确定较低级别,但我对较高级别有一个想法: 如果你有你的 vive 控制器,并且想测试 oculus 触摸事件,你可以做一些映射。

我会做一个组件,拦截原始事件,并发出具有相同细节的新事件:

AFRAME.registerComponent("event-mapper", {
  init: function() {
    let viveEvents = ["menuup", "menudown"]
    let oculusEvents = ["gripdown", "gripup"]
    viveEvents .forEach((event, index) => {
      this.el.addEventListener(event, (e) => {
        this.el.emit(oculusEvents [index], {detail: e})
      })
    })
  }
}

如果您希望它是“动态的”,您可以使用真正的 Map() 而不是两个数组,但在这里它似乎是多余的。

此外,通过在发出的事件中包含detail,所有详细信息、值、目标也会随新事件一起传递。


因此,当您希望您的实体对映射事件做出反应时,您可以这样做:
<a-entity event-mapper></a-entity>

在我的fiddle 中查看(将一些鼠标事件映射到虚构的事件上)

【讨论】:

  • 有趣的方法 :) 。无论如何,发出的事件是否会为您提供原始设备的准确输出。我的意思是,他们会从原始的 gripdown 事件中输出键和值吗? (或者它们是一样的吗?)
  • 拍摄,我忘记了最重要的部分:D 我已经更新了我的 fiddle + anwser(事件发出的方式)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2020-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-02
  • 1970-01-01
相关资源
最近更新 更多