版本:Unity 6 (6000.0)
语言:English
创建可配置关节
使用可配置关节驱动力的

使用可配置关节自定义运动约束

您可以使用可配置的关节一个物理组件,允许在刚体组件之间建立动态连接,通常允许一定程度的运动,例如铰链。 更多信息
参见 术语表
来独立地约束每个关节轴上的线性运动和旋转运动。

使用X、Y、Z 运动表示线性运动,使用X、Y、Z 旋转表示旋转运动。默认情况下,这些轴对应于对象的局部轴,由属性定义。要将运动约束到全局轴而不是对象的局部轴,请启用在世界空间中配置

您可以将每个轴设置为锁定限制自由

  • 锁定轴会限制所有运动,因此关节根本无法移动。例如,在全局 y 轴上锁定的对象无法上下移动。
  • 限制轴允许在您定义的限制之间自由移动。例如,您可以通过将枪炮塔的旋转限制到特定的角度范围来限制其射界。
  • 自由轴允许任何运动。

要限制线性运动,请使用线性限制属性,该属性定义关节可以从其原点移动的最大距离(沿每个轴分别测量)。

Illustration of a limit along the X axis
沿 X 轴限制的示意图

要限制旋转,请使用角度限制属性。您可以使用此属性为每个轴指定不同的限制值。您还可以为 x 轴的旋转角度定义单独的上限和下限;其他两个轴使用原始旋转两侧的相同角度。

在关节限制处添加弹跳

您可以在关节的限制处模拟一个有弹性的表面。默认情况下,关节在达到其限制时会停止移动。但是,现实世界中很少出现像这样的非弹性碰撞当物理引擎检测到两个游戏对象的碰撞体接触或重叠时,就会发生碰撞,前提是至少一个具有刚体组件并且正在运动。 更多信息
参见 术语表
,并且为约束关节添加一些弹跳通常更现实。

要使约束对象在达到其限制后弹回,请使用线性限制和角度限制的弹性属性。对于更逼真、自然的碰撞,请使用较小的数字,或者将其设置得更高以模拟异常有弹性的边界,例如台球桌的缓冲垫。

Bouncy joint does not cross the limit
有弹性的关节不会越过限制

在关节限制处添加弹性

当关节超出其限制时,您可以模拟弹簧状的弹性行为。为此,请使用线性运动的弹簧属性线性限制弹簧以及旋转的角度 X/YZ 限制弹簧。当您将限制弹簧属性设置为大于零的值时,关节在达到限制时不会停止移动;相反,它会越过限制,并且弹簧力会将其拉回限制位置。限制弹簧值决定力的强度。默认情况下,弹簧会将关节拉到与碰撞相反的方向。

要减少弹性和更平缓地将关节返回到限制,请使用阻尼器属性。

Spring joint crosses the limit but is pulled back to it
弹簧关节越过限制但被拉回
创建可配置关节
使用可配置关节驱动力的