Spring Joint 2D
# Spring Joint 2D (2D弹簧关节)
2D弹簧关节允许由刚体物理组件控制的两个游戏对象就像通过弹簧连接在一起一样。弹簧将在两个对象之间沿轴线施力,试图使这两个对象保持一定距离
# 属性
属性 | 功能 |
---|---|
Enable Collistion | 连接的两个对象能否相互碰撞?选中此复选框表示“能”。 |
Connected Rigid Body | 在此处指定该关节连接到的另一个对象。如果将此属性保留为 None,此关节的另一端将固定到空间中由 Connected Anchor 设置所定义的点。选择字段右侧的圆圈可查看要连接到的对象的列表。 |
Auto Configure Connected Anchor | 选中此框可为该关节连接到的另一个对象自动设置锚点位置。(选中此框将无需填写 Connected Anchor 字段。) |
Anchor | 定义 2D 摩擦关节的端点连接到此游戏对象的位置 |
Connected Anchor | 定义 2D 摩擦关节的端点连接到另一游戏对象的位置 |
Auto Configure Distance | 选中此框可以自动设置和维持连接对象之间的距离 |
Distance | 距离 |
Damping Ratio | 阻尼比, 想要抑制弹簧振荡的程度:介于 0 到 1 范围内,值越大,移动越少。 |
Frequency | 频率, 对象接近所需的间隔距离时弹簧振荡的频率(以每秒周期数表示):频率值介于 0 到 1,000,000 范围内 - 值越高,弹簧越硬。 |
Break Force | 指定破坏并进而删除关节所需的线性(或直线)力水平。Infinity 表示关节牢不可破。 |
# 详情
此关节的行为像弹簧。目的是保持两点之间的线性距离。通过 Distance
设置可设定此距离。这两个点可以是两个 2D 刚体组件,或一个 2D 刚体组件和世界中的一个固定位置。(将 Connected Rigidbody
设置为 None
,即可连接到世界中的固定位置)。此关节对两个刚体施加线性力。不施加扭矩(角力)。
此关节使用模拟弹簧。可以设置弹簧的刚度和运动:
一个几乎不动的僵硬弹簧
高(1,000,000 为最高)Frequency == 僵硬弹簧。
高(1 为最高)Damping Ratio == 几乎不动的弹簧。
一个一个移动的松弛弹簧
低 Frequency == 松弛弹簧。
低 Damping Ratio == 移动的弹簧。
弹簧在对象之间施力时,往往会超过对象之间设定的距离,然后反复反弹,产生连续振荡。Damping Ratio 用于设置对象在多长时间内停止移动。Frequency 用于设置对象在目标距离的任何一侧振荡的速度。
此关节有一个约束:
- 将两个刚体对象上的两个锚点之间的线性距离保持为零。
使用此关节构建的物理对象就好像是使用弹簧或允许旋转的连接方式连接在一起一样。例如:
- 角色的身体由多个似乎半刚性的对象组成。使用弹簧关节可将角色的身体部位连接在一起,允许这些部位相互弯曲。还可以指定身体部位松散还是紧密结合在一起
提示:
Frequency 为零是特殊情况:这种情况下会产生最大刚度的弹簧。
2D 弹簧关节使用 2D 盒体弹簧关节。2D 距离关节也使用相同的 2D 盒体弹簧关节,但会将频率设置为零!在技术上,频率为零且阻尼为 1 的 2D 弹簧关节与 2D 距离关节相同!