物理

基础物理约束组件

物理约束组件是一种非常重要的物理组件,通过约束可以更好控制动态碰撞器组件的运动,为场景添加有趣的交互响应。本文主要介绍最基础的三种物理约束组件:

  1. 固定约束组件

    fixedJoint

  2. 弹性约束组件

    springJoint

  3. 铰链约束组件

    hingeJoint

所有的物理约束都有两个作用对象,其中代表受到物理约束作用的动态碰撞器(在该节点上挂载物理约束组件),另外一个是约束挂载的位置或者是另外一个动态碰撞器(通过组件配置来设置)。 因此,这些组件的使用方法类似,以固定约束组件FixedJoint为例:

const fixedJoint = currentEntity.addComponent(FixedJoint);
fixedJoint.connectedCollider = prevCollider;

局部坐标与世界坐标

理解物理约束组件的使用,其中一个关键点就是理解局部坐标世界坐标。所有的物理约束,都可以配置 connectedCollider 属性。 此外,某些物理约束组件还可以通过配置 connectedAnchor 属性,设置物理约束挂载的位置。

需要特别注意的是,当 connectedCollider 被设置后,connectedAnchor 代表的是相对于该碰撞器的局部坐标。connectedCollider 为 null 时, connectedAnchor 代表的是世界坐标。

铰链约束

以上三种物理约束中,相对比较复杂的是铰链约束,因为除了需要配置 connectedColliderconnectedAnchor 之外,还需要指定铰链的旋转轴方向和旋转半径。 可以通过配置 axis (默认方向是朝向 x 轴正方向)和 swingOffset 指定这两个属性。 其中 swingOffset 也是一个向量,可以理解成从 connectedAnchorconnectedCollider 共同确定的旋转中心出发的偏移,动态碰撞就被挪到该点开始绕着旋转轴旋转。

上述物理约束组件的使用,可以参照:

最后更新于 七月 11, 2024

这篇文档对您有帮助吗?