- This bug is fixed in Unity 2021+.
- If you're using a Native Animator Controller you can control its overall speed by setting the
Animator.speed(usually accessed via theAnimancerComponent.Animator).
But if you're using a HybridAnimancerComponentorControllerStateit's not possible to directly set the speed.- The
ControllerStateclass has aSpeedproperty Inherited from the baseAnimancerStatebut Unity's internalAnimatorControllerPlayablesimply ignores it.
- The
Workaround
Other than updating to a newer version of Unity, there's only one known workaround (and it's not very good):
- Create a
Float Parameter. - Select all of the states in the Animator Controller.
- Enable their
Speed Multiplierand set it to use the parameter you just created. - Repeat steps 2 and 3 for each layer and sub-state machine.
- Now you can use
ControllerState.SetFloat("Parameter Name", speed);to control the speed of all states.
Unfortunately, that only affects the states themselves, not the transitions between them.
