Version: Unity 6.0 (6000.0)
语言 : 中文
带有可配置关节的驱动力
可配置关节组件参考

配置可配置关节上的驱动力

使用可配置关节来为模拟电机创建自定义目标和驱动力。

可按以下步骤配置可配置关节上的驱动力: 1. 选择要应用目标位置还是应用目标速度,以使驱动力达到设定位置或速度。目标可以是线性的(有方向的)或有角度的(旋转的)。 1. 使用模拟弹簧和阻尼器系统的属性为相应的轴配置驱动力

注意:可以同时向关节施加线性力和旋转力。但是,不能施加多个线性力或多个旋转力。如果施加多个线性力或旋转力,物理系统会尝试同时解决这两个问题,并会产生不想要的结果。例如,如果施加了旋转力 Target Rotation 和线性力 Target Velocity,则会创建出一个保持特定旋转,并以特定线速度移动的关节。但是,如果施加了两个旋转力,即 Target RotationTarget Angular Velocity,物理系统会尝试将对象保持在特定的旋转状态,同时以特定速度旋转对象。

应用目标位置

如要应用始终会尝试将对象拉回到指定位置或使其旋转的类似弹簧的行为,请设置目标位置。可以设置线性位置、旋转位置或两者。

  • 要在 Axis 定义的空间中设置位置,请使用Target PositionXYZ 值。
  • 要在 Axis 定义的空间中设置旋转,请使用 Target RotationXYZ 值。

此外,必须设置相应的线性或角轴驱动,如带有可配置关节的驱动力中所述。

重要信息:要使可配置关节施加达到目标位置所需的驱动力,任何受影响的轴驱动上的 Position Spring 值都必须是 0 以外的值。

应用目标速度

如要应用特定的连续速度,请设置目标速度。可以设置线性运动速度、旋转运动速度或两者。

要设置目标线速度,请使用 Target VelocityXYZ 值。这些值针对每个轴分别进行配置(以米/秒为单位)。

要设置目标角速度,有两个选项:

  • 如要单独配置每个轴的驱动力,请将 Rotational Drive Mode 设置为 X 和 YZ,并使用 Target Angular VelocityXYZ 值。这些值针对每个轴分别进行配置(以弧度/秒为单位)。
  • 如要在不设置特定驱动力的情况下配置旋转,请将 Rotational Drive Mode 设置为 Slerp DriveSlerp Drive 使用四元数的球面插值或“Slerp”功能来重新定向关节。Slerp 过程不会隔离单个轴,而是寻找将对象从当前方向带到目标的最小总旋转,并根据需要将该旋转应用于所有轴。

此外,必须设置相应的线性或角轴驱动,如带有可配置关节的驱动力中所述。

重要信息:要使可配置关节施加达到目标速度所需的驱动力,任何受影响的轴驱动上的 Position Damper 值都必须是 0 以外的值。

配置驱动力

对于要施加力的每个轴驱动,请使用 Position Spring 来配置要施加的弹簧力,并使用 Position Damper 来配置对该弹簧力的阻尼效果。

反复试验弹簧和阻尼器值以获得所需的结果,并在运行时进行测试以检查施加的力是否足以抵消施加到对象的任何其他力。

注意:可以同时向关节施加线性力和旋转力。但是,不得施加多个定向力或多个旋转力。如果施加多个线性力或旋转力,物理系统会尝试同时解决这两个问题,并会产生不想要的结果。例如,如果施加了旋转力 Target Rotation 和线性力 Target Velocity,则会创建出一个保持特定旋转,并以特定线速度移动的关节。但是,如果施加了两个旋转力,即 Target RotationTarget Angular Velocity,物理系统会尝试将对象保持在特定的旋转状态,同时以特定速度旋转对象。

带有可配置关节的驱动力
可配置关节组件参考