Aframe a框架如何在Oculus GO控制器上模拟6自由度控制器,使用触摸板向前、向后、向左和向右移动控制器?

Aframe a框架如何在Oculus GO控制器上模拟6自由度控制器,使用触摸板向前、向后、向左和向右移动控制器?,aframe,Aframe,如果我们可以在Oculus Go控制器上模拟6自由度控制会怎么样?假设我们将控制器3d模型变成一只手,它仍然只是旋转,但假设我们使用触摸板在空间中向前、向左、向右或向后移动手,触摸板使您在空间中沿z轴和x轴移动,但加速度计/陀螺仪使您在空间中沿y轴和x轴移动。因此,加速度计/陀螺仪充当手臂,触摸板充当手/手腕,手可以前后移动,只能左右扭转,用扳机握紧,手不能上下倾斜,但手臂可以弥补这一点。那么我该如何构建它呢?有一个提供按方向按拇指板的事件(例如,thumbupstart,thumbleften

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

有一个提供按方向按拇指板的事件(例如,
thumbupstart
thumbleftend

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

还需要考虑相机所面对的方向。这是一个很好的起点,因为它类似于,在这里,它会监听向下键并转换位置。只需修改以使用拇指控件即可

更多提示:

<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>

AFRAME.registerComponent('thumb-movement-controls'{
init:函数(){
此按钮={
左:假,右:假,上:假,下:假
};
this.el.addEventListener('thumbleftstart',()=>{
this.buttons.left=true;
});
this.el.addEventListener('thumbleftend',()=>{
this.buttons.left=false;
});
},
勾选:函数(){
//真正简化了移动。不考虑相机航向或速度/时间,但wasd控制显示了如何。
如果(此按钮为左){
此.el.位置.x-=0.001;
}
}
});
提供按方向按拇指板的事件(例如,
thumbupstart
thumbleftend

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

还需要考虑相机所面对的方向。这是一个很好的起点,因为它类似于,在这里,它会监听向下键并转换位置。只需修改以使用拇指控件即可

更多提示:

<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>

AFRAME.registerComponent('thumb-movement-controls'{
init:函数(){
此按钮={
左:假,右:假,上:假,下:假
};
this.el.addEventListener('thumbleftstart',()=>{
this.buttons.left=true;
});
this.el.addEventListener('thumbleftend',()=>{
this.buttons.left=false;
});
},
勾选:函数(){
//真正简化了移动。不考虑相机航向或速度/时间,但wasd控制显示了如何。
如果(此按钮为左){
此.el.位置.x-=0.001;
}
}
});

今晚,4名经验丰富的web编码员、javascript编码员共同努力,试图按照您的指示使用daydream controller实现这一目标,我们工作了4个小时,尝试了很多不同的方法,我们在VR控制台中创建了一个,以查看daydream controller在做什么。但我们仍然无法让它工作。困难在于在一个框架中定制daydream控制器的ly评分似乎很高,但我想知道是我们自己还是这个控制器特别难。在Oculus Go上定制触控板会更容易吗?每个控制器的过程都是一样的。我附加了另一个提示。3D/控制器的工作是完全不同的来自webdev world.A-Frame已经通过帮助您抓取/查询游戏板、模型、按钮事件和thumb控件抽象出了大量内容,但将thumb轴转换为方向事件本身相当复杂:)…如果你被卡在特定的部分上,请发表更多评论。我们可以通过触摸板左键单击来设置长方体动画。但是,我们尝试用摄影机实体id替换长方体实体id,并尝试使摄影机在右键单击时旋转15弧度,但这不起作用。我还尝试将Oculus Go控制器代码添加回其中,但没有任何n我们所做的电子战轨迹板修改正在使用它。包括注释出Solo控制器代码的时候。最终弄清楚emit的工作原理对于控制器和设置多个实体的动画来说都是一个解决方案。差不多了。我将重新检查移动控制组件以获得线索。谢谢。问题是我似乎无法组合拇指控制与传送控制与旋转的相机元素我的代码开始感觉像一场噩梦,看看一点我有一个左触控板触发一个框来分割实体在另一点我有传送工作,但它是创造了一个左和右的白日梦控制器在传送过程中,共这是一个有多个实体动画的旧版本代码,在第二次触发后,这些都有后续的动画。今晚,4名经验丰富的web编码人员,javascript编码人员,一起努力按照您的指示使用daydream控制器来实现这一目标,我们工作了4个小时,我们尝试了很多d不同的是,我们在虚拟现实中创建了一个控制台来查看daydream控制器在做什么。我们仍然无法让它工作。在一个框架中定制daydream控制器的难度似乎很高,但我想知道是我们还是这个控制器特别困难。定制trackp会更容易吗Oculus Go上的广告?对每个控制器来说都是相同的过程。我附加了另一个提示。3D/CONT