我正在使用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
更新位置。
答案 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
组件以及超级手和物理学。使该组件正常工作。
我希望有帮助。