Pause Animation.CrossFade

Hi there,

I’m using the animation.CrossFade function to fade from one animation to another and it works fine. However in my application, I want the animation to be paused whenever I hit the pause key.

To do that I set the animation[“MyAnimation”].speed = 0;

When any animation is running and I hit pause, it works fine, but if I hit pause while the application is crossfading an animation it doesn’t stop.

Can you please share some ideas?

Not entirely sure if this works, but you could use a coroutine directed to a function in which the Animation.CrossFade function is in. Like:

function Start () {
	StartCoroutine("Blah");
    while (Input.GetKeyDown != "p") {yield;}
	yield StopCoroutine("Blah");
}

function Blah () {
	//The stuff, like that crossfade
}

In which the key “p” is the key to stop the coroutine.

Unfortunately it doesn’t work, because by default when I pause the application the “Execute” method is not runned. Therefore, your solution is already implemented and still it doesn’t work. :frowning:

Thanks though, @Craftnime!

Oh maybe, I forgot to insert yield behind the two coroutine commands. Try both or either!
yield StartCoroutine(“Blah”);
And/or
yield StopCoroutine(“Blah”);
(I edited that answer)

Yup I got it. However it does solve the problem. When I pause the application, I don’t run the method where the crossFade is implemented. So, as I said, I’m already implementing your solution.

Tried using animation.Blend, this one stops when we step the animation speed to zero, but I don’t get the same behaviour as I get with crossFade.

Thanks anyway!