Danwolve 3 Report post Posted April 17, 2019 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
Samusan 16 Report post Posted April 17, 2019 ¿Por que quieres meterla en Update? ¿Puedes pasar el script? Share this post Link to post Share on other sites
Antonio 185 Report post Posted April 17, 2019 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
KevDev 27 Report post Posted April 17, 2019 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
Danwolve 3 Report post Posted April 17, 2019 Vale, ya lo solucione poniendo una condicion de tipo boolean, gracias a todos :D Share this post Link to post Share on other sites