关节组件

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

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

  • Revolute Joint - 旋转关节,可以看做一个铰链或者钉,刚体会围绕一个共同点来旋转。
  • Distance Joint - 距离关节,关节两端的刚体的锚点会保持在一个固定的距离。
  • Prismatic Joint - 棱柱关节,两个刚体位置间的角度是固定的,他们只能在一个指定的轴上滑动。
  • Weld Joint - 焊接关节,根据两个物体的初始角度将两个物体上的两个点绑定在一起。
  • Wheel Joint - 轮子关节,由 Revolute 和 Prismatic 组合成的关节,用于模拟机动车车轮。
  • Rope Joint - 绳子关节,将关节两端的刚体约束在一个最大范围内。
  • Motor Joint - 马达关节,控制两个刚体间的相对运动。

关节的共同属性

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

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

每个关节都需要链接上两个刚体才能够发挥他的功能,我们把和关节挂在同一节点下的刚体视为关节的本端,把 connectedBody 视为另一端的刚体。

通常情况下,每个刚体会围绕自身周围的位置来设定此点。根据关节组件类型的不同,此点决定了物体的旋转中心,或者是用来保持一定距离的坐标点,等等。

collideConnected 属性允许你决定关节两端的刚体是否需要继续遵循常规的碰撞规则。比如如果你现在准备制作一个布娃娃,你可能会希望大腿和小腿能够部分重合,然后在膝盖处链接到一起,那么就需要设置 collideConnected 属性为 false 。如果你正在制作一个升降机,你可能希望升降机平台和地板能够碰撞,那么就需要设置 collideConnected 属性为 true。