When I reverse an animation that has ended sometime ago, it also accounts for the time between its end and the moment I begin the reversal!

Hard to make it any clearer in the title, so I explain here:

I have an Animator with a State of about 1 second duration. I have added a speed multiplier parameter on the state. After a while, I set the multiplier to -1.0f to reverse that animation. So far so good.

From the end of the animation state, until I begin its reversal, let’s say it’s been 5 seconds. When I initiate the reversal, the animation doesn’t immediately start playing. Instead it sits idle for another 5 seconds, THEN I see the animation playing in reverse! If I trigger the reversal 2 seconds later, it takes another 2 seconds to actually see the animation reversing, and so on.

It’s like the animation is still playing after it ends, so when I reverse it, it reverses through the time it’s been finished and idle as well… This is quite weird. Anyone care to shed some light here, I’d really appreciate it!

I was having the same issue. I created a work around by making a function that set the speed of the animation to 0, then placed animation events at the beginning and end of my animation to call that function. That way the animation stopped at the end of the timeline. It seems to be working well for now.