Fixed Joint 2D
# Fixed Joint 2D (2D 固定关节)
通过将此组件应用于由2D刚体物理组件控制的两个游戏对象,可使这些对象保持对于彼此的位置,确保游戏对象始终以给定位置和角度偏移,这是一种2D弹簧式关节,但无需为其设置最大力。可以将弹簧设置为刚性或柔性。
# 属性
属性 | 功能 |
---|---|
Enable Collision | 可允许两个连接的游戏对象相互碰撞。 |
Connected Rigid Body | 指定此 2D 固定关节连接到的另一个游戏对象。将此属性保留为 None 可将 2D 固定关节的另一端固定到空间中由 Connected Anchor 设置所定义的点。选择字段右侧的圆圈可查看要连接到的游戏对象的列表。 |
Auto Configure Connected Anchor | 选中此框可为该 2D 固定关节连接到的另一个游戏对象自动设置锚点位置。如果选中此框,则无需填写 Connected Anchor 字段。 |
Anchor | 锚点, 关节端点连接到此对象的位置 |
Connected Anchor | 连接锚点, 2D 固定关节端点连接到另一游戏对象的位置 |
Damping Ratio | 定义想要抑制弹簧振荡的程度:介于 0 到 1 之间,值越大,移动越少。 |
Frequency | 频率, 游戏对象接近所需的间隔距离时弹簧振荡的频率(以每秒周期数表示)。频率值介于 1 到 1,000,000 范围内,值越高,弹簧越硬。请注意,如果频率设置为 0,则弹簧完全僵硬。 |
Break Force | 断开力, 指定破坏并进而删除关节所需的作用力水平。Infinity 表示关节牢不可破。 |
Break Torque | 断开力矩, 指定破坏并进而删除关节所需的扭矩水平。Infinity 表示关节牢不可破。 |
# 注意
此关节的目的是保持两点之间的相对线性偏移和角度偏移。这两个点可以是两个 2D 刚体组件,或一个 2D 刚体组件和世界中的一个固定位置。(将 Connected Rigidbody 设置为 None,即可连接到世界中的固定位置)。
线性偏移和角度偏移基于两个连接点的相对位置和方向,因此可以通过在 Scene 视图中移动连接的游戏对象来更改这些偏移。
此关节对连接的 2D 刚体游戏对象施加线性力和扭力。此关节使用的模拟弹簧已预先配置为模拟所能提供的最大刚度。可使用 Frequency 设置来更改弹簧的值,从而降低其刚度。
弹簧在游戏对象之间施力时,往往会超过对象之间的期望距离,然后反复反弹,导致连续振荡。阻尼比率决定了振荡减弱并使游戏对象停止的速度。频率是弹簧在目标距离任一侧进行振荡的速率;频率越高,弹簧刚度越大。
2D 固定关节同时有两个约束:
保持两个 2D 刚体游戏对象上的两个锚点之间的线性偏移。
保持两个 2D 刚体游戏对象上的两个锚点之间的角度偏移。
使用此关节构建的物理游戏对象就好像是通过刚性连接方式相连一样。游戏对象不能彼此远离,不能相互靠近,也不能相对于彼此旋转,例如桥梁的各个部分采用刚性连接。
还可以使用此关节来创建刚度稍低的柔性连接,例如桥梁的各个部分略带柔性。
# 2D 固定关节和 2D 相对关节
了解 2D 固定关节与 2D 相对关节之间的主要区别是非常重要的:
2D 固定关节是一种弹簧式关节。2D 相对关节是具有最大力和/或扭矩的电机型关节。
2D 固定关节使用弹簧来保持相对的线性偏移和角度偏移。2D 相对关节则使用电机。可配置关节的弹簧或电机。
2D 固定关节使用锚点(此关节派生自脚本 Anchored Joint 2D);在锚点之间保持相对的线性偏移和角度偏移。2D 相对关节没有锚点(此关节直接派生自脚本 Joint 2D)。
2D 固定关节无法实时修改相对的线性偏移和角度偏移。2D 相对关节则可以进行此类修改。