Hi there! Im developing with Vuforia AR plugin.
I want to Activate an animated gameobject, wait for some seconds and the hide that gameobject and show another one!
I tried differents things(invoke, WaitForSeconds, Destroy(GO,time)<= this one runned ok but when I tried to show the GO again obviusly I was in trouble) but I can’t make it run the delay.
The code:
First, a coroutine will only delay the execution of the code following the yield inside its scope. Wich means that your Delay function exectute the Debug.Log, wait and leave. But Update didn’t wait. So the animation was started the stopped at the same frame.
Secondly, in C# you need to call a coroutine with StartCoroutine, or it won’t be executed at all.
You can’t use Invoke directly because you have a parameter. You could store the animacion variable into a member though. Anyway, for the coroutine. When you have the event triggering the animation, use StartCoroutine( Animate(animacion) ); Here is Animate’s code :
private IEnumerator Animate( GameObject A )
{
// ...
activarAnimacion( A );
// Unless you're sure the animation's length is 0.1 seconds,
// you should use A.animation[ A.animation.clip.name ].Length here
yield return new WaitForSeconds(0.1f);
// ...
desactivarAnimacion( A );
}