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