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.
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!