Mirroring Rules - rmfandyplayz/UnityUIAnimationTools GitHub Wiki
The full detail behind Mirroring. You don't need this to use it.
| Forwards | Mirrored |
|---|---|
| Step order | Fully reversed: the last step becomes the first. Joined (WITH PREVIOUS) groups stay joined and whole, and their members reverse too. Inside a group that only changes how the list reads, since joined steps all start together |
| Staggered delays inside a joined group | Flipped, so the item that arrived last is the first to leave |
From / To
|
Swapped, values and modes both |
| Ease preset |
Unchanged. A mirrored Hide keeps the Out Quart its Show was made with |
| Custom curve | Unchanged |
To: Current offset |
The same offset, negated |
| Movement path points | Reversed, so the mirror walks the same path backwards. On a To: Current step they're also re-based onto the new start. A Linear path retraces exactly; a Curved one lands within a pixel or two |
Set Active on |
Set Active off |
| Punch / shake | Unchanged, since they already end where they started |
Play Sound |
Keeps its clip |
| Custom Property text | Swapped like any other value. With no From, the mirror types from the forward To back to the resting text |
Everything outside the steps (Loops, Loop Type, Play At Custom FPS, Interrupt Others, Notes, On Complete) is carried across untouched.
A step with no From. Its forward start was whatever the value happened to be, so there's nothing exact to mirror onto. The mirror switches the step to FROM, sets From to the forward To (which is known), and sets To to Baseline 0, the resting value. Then it logs a warning naming each affected step. Click the warning to find the object.
That guess is right for an animation that started from rest, and does nothing on one that already ends at rest. If a mirrored step does nothing, this is why: type the To you actually want.
A lone step's delay. Delays are flipped within a joined group. A delay on a step on its own is a gap between groups, and a gap after a step can't be expressed on the step itself, so it's left alone.
Some movement paths. Path points use To's mode, and two cases change that mode: swapping a From and To that were in different modes, and the no-From case above when the old To was Absolute (the new To is Baseline). Converting the points between modes needs the resting value, which only exists while the game runs. So the points are reversed, but read in a different mode, and the mirror logs a second warning naming those steps.
Under the hood
- A
Curvedpath doesn't retrace exactly because DOTween shapes the two ends of a Catmull-Rom curve differently (the control point before the first point is the second point; the one after the last is the last mirrored through the one before it). On a 200-unit path, the mirror lands within about 1.5 units. - Reordering always keeps each
WITH PREVIOUSgroup together and contiguous. Moving steps between groups would silently change which steps run together.