首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aframe如何使用触摸板在Oculus GO控制器上模拟6dof控制器,以向前、向后、向左和向右移动控制器?

Aframe如何使用触摸板在Oculus GO控制器上模拟6dof控制器,以向前、向后、向左和向右移动控制器?
EN

Stack Overflow用户
提问于 2018-11-21 15:36:05
回答 1查看 303关注 0票数 0

enter image description here如果我们可以在Oculus Go控制器上模拟6dof控制会怎么样?想象一下,我们将控制器3d模型转换为一只手,它仍然在旋转,但是想象一下,我们使用触摸板在空间中向前、向左、向右或向后移动手,触摸板让您在空间中沿z轴和x轴移动,但加速计/陀螺仪给您提供y轴和x轴。因此,加速计/陀螺仪充当手臂,触摸板充当手/手腕,这只手可以前后移动,只能左右转动,握住扳机,手不能上下倾斜,但手臂可以弥补这一点。那么我该如何构建它呢?

EN

回答 1

Stack Overflow用户

发布于 2018-11-21 20:25:11

有提供在方向上按下拇指垫的事件的https://www.npmjs.com/package/aframe-thumb-controls-component (例如,thumbupstartthumbleftend)。

编写一个组件来侦听这些事件,设置一个属性(例如,this.buttons.left = true,然后tick处理程序需要根据按下的按钮更新this.el.object3D.position

还需要考虑相机面对的方向。https://github.com/aframevr/aframe/blob/master/src/components/wasd-controls.js是一个很好的起点,因为它很相似,它可以监听按键并转换位置。只需修改为使用拇指控件即可。

更多提示:

代码语言:javascript
复制
<script src="https://unpkg.com/aframe-thumb-controls-component@1.1.0/dist/aframe-thumb-controls-component.min.js">

AFRAME.registerComponent('thumb-movement-controls', {
  init: function () {
    this.buttons = {
      left: false, right: false, up: false, down: false
    };

    this.el.addEventListener('thumbleftstart', () => {
      this.buttons.left = true;
    });

    this.el.addEventListener('thumbleftend', () => {
      this.buttons.left = false;
    });
  },

  tick: function () {
    // Really simplified movement. Does not take into account camera heading or velocity / time, but wasd-controls shows how.
    if (this.buttons.left) {
      this.el.position.x -= 0.001;
    }
  }
});

<a-entity daydream-controls thumb-controls thumb-movement-controls></a-entity>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53407234

复制
相关文章

相似问题

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