关节组件

物理系统包含了一系列用于链接两个刚体的关节组件。关节组件可以用来模拟真实世界物体间的交互,比如铰链,活塞、绳子、轮子、滑轮、机动车、链条等。学习如何使用关节组件可以创建一个真实有趣的场景。

注意:关节组件在 Builtin 2D 物理模块中是无效的。

目前物理系统中提供了以下可用的关节组件:

  • Distance Joint - 距离关节,将关节两端的刚体约束在一个最大范围内。
  • Fixed Joint - 固定关节,根据两个物体的初始角度将两个物体上的两个点固定在一起。
  • Hinge Joint - 铰链关节,可以看做一个铰链或者钉,刚体会围绕一个共同点来旋转。
  • Relative Joint - 相对关节,控制两个刚体间的相对运动。
  • Slider Joint - 滑动关节,两个刚体位置间的角度是固定的,它们只能在一个指定的轴上滑动。
  • Spring Joint - 弹簧关节,将关节两端物体像弹簧一样连接在一起。
  • Wheel Joint - 轮子关节,用于模拟机动车车轮。

关节的共同属性

虽然每种关节都有不同的表现,但是它们也有一些共同的属性:

  • connectedBody - 关节链接的另一端的刚体
  • anchor - 关节本端链接的刚体的锚点
  • connectedAnchor - 关节链接另一端刚体的锚点
  • collideConnected - 关节两端的刚体是否能够互相碰撞

每个关节都需要链接两个刚体才能够发挥它的功能,我们把和关节挂在同一节点下的刚体视为关节的本端,把 connectedBody 视为另一端的刚体。通常情况下,每个刚体会选取自身周围的某个位置设定成锚点。根据关节组件类型的不同,锚点决定了物体的旋转中心,或者是用来保持一定距离的坐标点,等等。

collideConnected 属性用于确定关节两端的刚体是否需要继续遵循常规的碰撞规则。

如果你现在准备制作一个布娃娃,你可能会希望大腿和小腿能够部分重合,然后在膝盖处链接到一起,那么就需要设置collideConnected 属性为 false。如果你准备做一个升降机,希望升降机平台和地板能够碰撞,那么就需要设置 collideConnected 属性为 true。