A形超人移动被抓物体

时间:2018-07-24 21:04:45

标签: javascript aframe oculus aframe-super-hands

我正在使用aframe-super-hands-component进行A-Frame项目。为了添加一层控件,我正在尝试使其能够像Oculus Dash控件(https://youtu.be/sMjlM5vFSA0?t=1m55s)一样,使用户可以使用控制器的操纵杆使实体离控制器更近/更远。 >

但是,当我尝试更新模型的位置时(如在抓取模型时所做的那样),它会尝试移动,但由于发出grab-start时设置的物理约束而停止。有什么方法可以移动超级手抓住的模型或重置应用于模型的约束?

这是我尝试更新抓取框的位置时的样子:https://imgur.com/a/AfzmwzL

就代码而言,我要做的就是在modelEl.object3D.position.sub(<direction vector>)事件绑定到控制器的情况下,使用grab-start更新位置。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么您可以从这里的超级手页面中查看物理学示例的代码;

https://wmurphyrd.github.io/aframe-super-hands-component/examples/physics/

您将看到有一个附加到控制器的组件,如下所示;

AFRAME.registerComponent('phase-shift', {
  init: function () {
    var el = this.el
    el.addEventListener('gripdown', function () {
      el.setAttribute('collision-filter', {collisionForces: true})
    })
    el.addEventListener('gripup', function () {
      el.setAttribute('collision-filter', {collisionForces: false})
    })
  }
})

这在抓住的同时“切换”了物理约束,我想这就是你要追求的。

很难知道您还在做什么,但是如果您还不知道,则需要包括aframe-physics-extras组件以及超级手和物理学。使该组件正常工作。

我希望有帮助。