Version: 2017.1
2D 物理材质
2D 距离关节 (Distance Joint 2D)

2D 关节

As the name implies, joints attach game objects together. You can only attach 2D joints to game objects which have a Rigibody 2D component attached or to a fixed position in world space.

所有 2D 关节的名称都以“2D”结尾。名称不以“2D”结尾的关节是 3D 关节。2D 关节用于 2D 游戏对象,而 3D 关节用于 3D 游戏对象。

(See Details and Hints, below for useful background information on all 2D joints.)

There are different types of 2D joints. See each joint reference page for detailed information about their properties.

  • 2D 距离关节 (Distance Joint 2D) - 连接由刚体物理组件控制的两个游戏对象,使这两个对象保持一定距离。

  • 2D 固定关节 (Fixed Joint 2D) - 将两个对象保持在相对于彼此的位置,确保对象始终以给定位置和角度偏移。例如,对象好像是采用刚性连接方式相连一样:对象不能彼此远离,不能相互靠近,也不能相对于彼此旋转。还可以使用此关节来创建刚度稍低的柔性连接。

  • 2D 摩擦关节 (Friction Joint 2D) - 将刚体物理组件控制的两个游戏对象之间的线速度和角速度降低到零(即:此关节使对象减速并停止)。例如,一个平台在旋转但抵抗该运动。

  • 2D 铰链关节 (Hinge Joint 2D) - 允许由刚体物理组件控制的游戏对象连接到空间中的一个点,使游戏对象可围绕该点旋转。例如,一把剪刀上的轴心。

  • 2D 相对关节 (Relative Joint 2D) - 允许由刚体物理组件控制的两个游戏对象基于彼此的位置来保持相对位置。使用此关节可将两个对象保持相互偏移。例如,在空间射击游戏中,玩家身后有额外的排炮。

  • 2D 滑动关节 (Slider Joint 2D) - 允许由刚体物理组件控制的游戏对象沿着空间中的一条线滑动(例如滑门)。

  • 2D 弹簧关节 (Spring Joint 2D) - 允许由刚体物理组件控制的两个游戏对象就像通过弹簧连接在一起一样。

  • 2D 目标关节 (Target Joint 2D) - 连接到指定目标,而不是像其他关节那样连接到另一个刚体对象。这是一种弹簧式关节,例如可将其用于拾取和移动处于重力作用下的对象。

  • 2D 车轮关节 (Wheel Joint 2D) - 模拟车轮和悬架。

详情和提示

Constraints

所有关节都提供适用于 2D 刚体行为的一个或多个约束。一个约束是一条“规则”,关节将尝试确保不会永久打破规则。约束的类型有多种,但通常关节只提供其中一些约束,有时只提供一个约束。有些约束会限制行为,例如确保刚体保持在一条线上或在特定位置中。有些是“驱动性”约束,例如用于旋转或移动刚体对象的电机会试图保持一定速度。

Temporarily Breaking Constraints

物理系统会期望暂时打破约束,对象移动的距离可能超过约束规定的距离,或者对象的移动速度可能超过其电机速度约束。未打破约束时,关节不施加任何作用力,而且不做功。只有打破约束时,关节才施加作用力来修复约束:因此,对于上文提到的“驱动性”约束,关节将保持距离或确保电机速度。然而,该力并不总是立即修复约束。虽然此修复通常进行得很快,但是也要在一段时间内进行。

此时间延迟会导致关节“拉伸”或看起来“很软”。发生延迟是因为物理系统试图施加关节作用力来修复约束,而同时其他游戏物理作用力正在发挥作用来打破约束。除了作用于游戏对象的冲突力之外,一些关节比其他关节更稳定并且反应更快。

无论关节提供什么约束,关节仅使用作用力来修复约束。这些力为线性(直线)力或角力(扭力)。

提示:考虑到作用在关节上的冲突力,在对已附加关节的刚体对象施加大力时始终要谨慎,特别是那些质量大的对象。

Permanently Breaking Joints

All joints have the ability to stop working completely (that is break) when a linear force or angular torque force exceeds a specified limit. This is known as ‘__Break Force__’ and ‘__Break Torque__’:

  • 如果关节施加线性力,则会有一个 Break Force 选项。
  • 如果关节施加角度(旋转)力,则会有一个 Break Torque 选项。

Both these limits are pre-set to ‘__Infinity__’: This means that they have no limit.

When a Break Force or Break Torque limit is exceeded, the joint is broken and the component deletes itself from its game object.

2D 物理材质
2D 距离关节 (Distance Joint 2D)