是否可以在用户(相机/光标)移动时将其“粘在”动画静态实体上? 例如,如果我跳到一个静态框,该框具有沿 y 轴移动的动画,用户如何保持在该框上?同样,如果一个盒子正在动画化它的比例,当相机不再“在”盒子上时,为什么它不会掉落?
最佳答案
对于移动平台,这是可能的,但有点棘手。您需要将物理组件附加到相机,而 dynamic-body
和 static-body
都不能完全正确地完成任务。我在 aframe-extras 中编写了一个组件来做到这一点,称为kinematic-body
。用法:
<a-entity camera="userHeight: 1.6"
universal-controls
kinematic-body></a-entity>
请注意,这仅适用于universal-controls
,不适用于 A-Frame 默认控件。
之后,您需要平台不仅可以移动,还需要更新实体上的 el.body.position
和 el.body.velocity
,以便物理已正确同步。您可以手动执行此操作,或按照 aframe-extras 中的其他示例进行操作:
<a-box id="platform1"
width="4" height="0.25" depth="4"
position="7 0.125 -15"
velocity="0 0 0"
toggle-velocity="axis: z; min: -5; max: 5;"
static-body></a-box>
工作中demo和source code .
缩放static-body
比较困难。物理引擎没有以这种方式扩展的概念,因此您可能需要手动编辑 el.body
,这可能有效,也可能无效。
还有其他方法可以在没有物理的情况下实现此目的,例如将光线转换器从摄像机向下指向并以这种方式检测当前平台。
关于javascript - 用户(相机)是否可以坚持动画静态实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361707/