Jump to content
UnitySpain
Sign in to follow this  
Danwolve

Corrutina En Bucle

Recommended Posts

Hola buenas,

actualmente estoy trabajando con un script que maneja a la IA enemiga, mi duda es muy simple, cuando poneis una corrutina en el metodo Update y necesitais que se reproduzca una sola vez y que luego hasta que no se cumpla la condicion otra vez no vuelva a reproducirse como lo haceis?. Gracias.

Share this post


Link to post
Share on other sites

La co-rutina puede tener la llamada en Update pero debe estar controlada por alguna condición para que no se esté ejecutando en cada frame.
La condición puede ser que no se vuelva a activar mientras la co-rutina este activa (depende claramente de lo que estés haciendo en la co-rutina, pero por ejemplo, si sabes que la co-rutina va a durar 2 segundos¿? pues puedes poner que no se vuelva a activar hasta que el tiempo sea Time.time+ 2.0f

 

Share this post


Link to post
Share on other sites

En C# yo lo haría así: 

bool condicionCumplida = false;

void Update{

	if(condicionCumplida)
	{
		condicionCumplida = false;

		StartCoroutine(MiCorrutina());
	}

}

IEnumerator MiCorrutina()
{
	//Tu código

	yield return 0;

}


En este código, hasta que no se cumpla la condición no volverá a reproducirse la corrutina. Si quieres que cuando empiece una nueva se pare la anterior tendrás que añadir un par de líneas más...

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...