Time update setting
By changing the UpdateMode, you can change the way the simulation time progresses for each cloth component.
This is especially important when moving characters with FixedUpdate().
In Unity, two different time management systems coexist: the update loop of the drawing system and the update loop of the physical system.
Therefore, the MagicaCloth update timing must match the update loop used by the character or the simulation will not run correctly.
If this setting is incorrect, the simulation will experience inexplicable oscillations.
Normal
Time is advanced by Unity’s basic Update() timing.
This mode assumes that the character is moved with Update() or LateUpdate() and the animation is updated with Normal.
Unity Physics
Time progresses according to the update timing of Unity’s physics system.
This mode assumes that the character is moved with FixedUpdate() and the animation is updated with Animate Physics.
Unscaled
Like Normal, time is advanced at Update() timing.
However, unlike Normal, it is not affected by the Unity timescale (Time.timeScale).
This is useful when the game is stopped due to timeScale=0 and cloth simulation is applied to characters in inventory.
In this case, the animation must also be set to Unscaled Time.
Animator Linkage
Automatically sets the appropriate update mode in conjunction with the character’s Animator.UpdateMode.
If Animator does not exist, it will be Normal.
Animator.UpateMode | MagicaCloth.UpdateMode |
Normal | Normal |
Animate Physics (Fixed) | Unity Physics |
Unscaled Time | Unscaled |