版本: 2022.3
语言: 英语
2D 滑轨关节
2D 目标关节

2D 弹簧关节

切换到脚本

2D 弹簧组件允许两个由 Rigidbody 物理控制的 GameObjectUnity 场景中的基本对象,可以表示角色、道具、场景、摄像机、航点等等。GameObject 的功能由附加在其上的组件定义。 更多信息
术语表 中查看
对象像通过弹簧连接在一起。弹簧将在两个 GameObject 之间沿其轴向施加力,试图使它们保持一定的距离。

属性 功能
启用 碰撞当物理引擎检测到两个 GameObject 的碰撞器接触或重叠时,至少一个具有 Rigidbody 组件并且正在运动时发生碰撞。 更多信息
术语表 中查看
启用此属性以在连接的两个 GameObject 之间启用碰撞。
连接的 Rigidbody 指定此关节连接到的其他对象。保留为 None 以将关节的另一端固定在由 连接锚点 属性定义的空空间中的点上。选择右侧的圆形图标以查看要连接的 GameObject 列表。
自动配置连接锚点 启用此属性以自动设置连接到此关节的其他对象的锚点位置。如果您启用此属性,则不必为 连接锚点 属性输入坐标。
锚点 定义关节末端连接到 GameObject 的位置(以 Rigidbody 2D 上的 x、y 坐标表示)。
连接锚点 定义关节末端连接到其他 GameObject 的位置(以 Rigidbody 2D 上的 x、y 坐标表示)。
自动配置距离 启用此属性以自动检测两个 GameObject 之间的距离,并将其设置为关节保持的距离。
距离 设置弹簧试图在两个物体之间保持的距离。(可以手动设置。)
阻尼比控制弹簧振荡的关节设置。阻尼比越高,弹簧到达静止状态的速度越快。 更多信息
术语表 中查看
设置抑制弹簧振荡的程度。在 0 到 1 的范围内,值越高,运动越少。
频率 设置当 GameObject 接近您想要的分离距离时,弹簧振动的频率(以每秒的周期数测量)。在 0 到 1,000,000 的范围内,值越高,弹簧越硬。 注意:频率 设置为零将创建可能的刚性最强的弹簧类型关节。
破坏动作 设置当力或扭矩阈值超限时执行的动作。
断力 设置力阈值,当超过此阈值时,将导致关节执行所选的断力动作。默认值设置为无穷大,永远不会超过,因此当阈值保持在此值时,永远无法执行断力动作。

使用此关节

此关节的行为像一个弹簧,同时保持两点之间的线性距离。您可以通过设置距离来进行设置。这两点可以是两个 Rigidbody2D 组件,或者一个 Rigidbody2D 组件和世界中的一个固定位置。(通过将 Connected Rigidbody 设置为 None 来连接到世界中的一个固定位置)。关节对两个刚体施加线性力。它不适用扭矩(角度力)。

关节使用模拟弹簧。您可以设置弹簧的刚度和运动

一个刚度大、几乎不动的弹簧…

  • 一个高频(1,000,000 是最高)的 频率 == 硬弹簧。

  • 一个高(1 是最高)的 阻尼比 == 几乎不动的弹簧。

一个松散、移动的弹簧…

  • 一个低 频率 == 松散弹簧。

  • 一个低 阻尼比 == 移动的弹簧。

当弹簧在两个物体间施加力时,它往往会超过您设置的它们之间的距离,然后反弹多次,产生连续的振荡。阻尼比设置物体停止移动的速度。频率设置物体在目标距离两侧振荡的速度。

此关节有一个约束

  • 维持两个 Rigidbody 物体上两个锚点之间的零线性距离。

您可以使用此关节来构建需要像弹簧或允许旋转的连接连接在一起反应的物理对象。例如

  • 一个身体由多个对象组成,这些对象的行为就像半刚性。使用 弹簧关节一种连接两个 Rigidbody 组件但不允许它们之间距离变化的关节类型,就像它们被弹簧连接在一起。 更多信息
    Glossary 中查看
    来连接角色的身体部位,允许它们相互弯曲。您可以指定身体部位是松散地还是紧密地连接在一起。

注意:Spring Joint 2D 使用 Box 2D 弹簧关节,Distance Joint 2D 也使用,但其频率设置为零。

其他资源

  • 有关其他 2D 关节的信息,请参阅 Joints 2D

SpringJoint2D

2D 滑轨关节
2D 目标关节