单独的铰链关节要应用到一个游戏对象上,铰链或绕着 Anchor 属性所指定的点来旋转,按照 Axis 属性指定的轴来移动。不用给关节的 Connected Body 属性添加对象,只有当希望关节的 Transform 属性依赖于附加对象的 Transform 属性时才为关节的 Connected Body 属性来添加对象。多个铰链关节也可以串联起来形成一条链条,可以给链条的每一个环添加关节,并向 Connected Body 那样添加到下一环上。


固定关节组件用于约束一个游戏对象对另一个游戏对象的运动。类似于对象的父子关系,但它是通过物理系统来实现而不像父子关系那样是通过 Transform 属性来进行约束。固定关节适用于以下的情形:当希望将对象较容易与另一个对象分开时,或者连接两个没有父子关系的对象使其一起运动,使用固定关节的对象自身需要有一个刚体组件。

  有时游戏中会存在这样的情景:当希望要某些游戏对象暂时或永久性的粘在一起,这时就很适合使用固定关节组件。该组件不需要通过脚本来更改层级结构就可以实现想要的效果,只需要为那些要使用固定关节的游戏对象添加刚体组件即可。

  可通过 Break Force 和 Break Torque 属性来设置关节的强度极限,如果这些参数不是无穷大而是一个数值,那么当施加到对象身上的力或转矩大于此极限值时,固定关节将被销毁,其对对象的约束也就随即失效。


   弹簧关节组件可将两个刚体连接在一起,使其像连接着弹簧那样运动。

  弹簧关节允许一个带有刚体的游戏对象被拉向一个指定的目标位置,这个目标可以是另一个刚体对象或者世界。当游戏对象离目标位置越来越远时,弹簧关节会对其施加一个作用力使其回到目标的原点位置,类似橡皮筋或者弹弓的效果。


角色关节主要用于表现布娃娃效果,它是扩展的球关节,可用于限制每一个轴向上的关节。


  可配置关节组件支持用户自定义关节,它开放了 PhysX 引擎中所有与关节相关的属性,因此可像其他类型的关节那样来创造各种行为。可配置关节有两类主要的功能:移动/旋转限制和移动/旋转加速度。

细节说明:

1、移动/旋转限制

可以为每个旋转轴和运动类型指定约束。针对 X 轴、Y 轴以及 Z 轴运动可定义沿不同轴的移动,而针对 X 轴、Y 轴和 Z 轴旋转可定义沿不同轴旋转,这些属性可以被设定为 Free(不受约束)、Limited(受自定义的限制)及 Locked(锁定状态无法运动)。

1)移动限制:如果游戏对象某个轴的 Motion 属性设定为 Limited,则可通过修改 Limited 属性值来设定该轴的运动约束值。对于平移运动,Linear Limited 属性将设定该对象能够远离原点的最大距离,通过该属性下的 Limited 数值可以对 Motion 属性值为 Limited 的任何移动进行约束。

2、移动/旋转加速度

使对象到达指定的位置或方向运动,或到达指定的速度或角速度。此系统的工作方式是:首先定义一个想要到达的目标,然后通过驱动力来提供加速度以便使其到达此目标,每一个驱动都有一个模式,通过此模式可定义该对象当前的目标。

1)移动加速度 X 轴、Y 轴和 Z 轴的驱动属性使得游戏对象沿着特定的轴来移动,每个驱动模式指定了对象是朝着目标位置还是目标速度抑或是两者兼而有之的运动方式。比如当 X 轴驱动设置为 Position 时,对象会朝着 X 轴的目标位置去移动。

当驱动模式为 Position 时,它的位置弹簧值将决定其如何朝着目标位置运动:同样,当驱动模式为 Velocity 时,它的最大作用力将决定该对象如何被加速至目标速度。

2)旋转加速度:旋转加速度属性为 X 轴角、YZ 轴角驱动及插值驱动,其功能与移动驱动基本相同,只是插值驱动与角驱动在功能上表现不同。可以在旋转驱动模式中选择是采用角驱动还是插值驱动,但这两种驱动不能同时被使用。

参见 Unity 常用 API

● 2.26 Joint