Publicado en 2 de marzo, 2016
Update con pausas sin congelar Unity en el intento
La función de ‘Update’ de Unity es uno de los primeros que empezamos a utilizar dentro de Unity ya que permite hacer una acción en cada frame o cada ciclo de juego.
Durante mis clases, eh tenido varios alumnos que preguntan si es posible hacer algo como un ‘Sleep’ en medio de una ejecución de ‘Update’. La respuesta a esta pregunta es un simple no, oh al menos en el Update de Unity. Usando los Coroutine de Unity es posible simular un Update, pero con posibilidad de tener pausas y no congelar Unity en el intento.
En cualquier script que deseamos tener un Update con pausas (yield) podemos lograrlo a partir de este template.
Void Start() { StartCoroutine(StartUpdateYield()); } IEnumerator StartUpdateYield () { while(true) yield UpdateYield(); } IEnumerator UpdateYield() { //Todo tu codigo, y para pausar solo usas cuando necesites //yield return new //null o WaitForSeconds }
Con esto es fácil hacer tareas como, avanza 5 pasos, espera 2 segundos, gira 180°, espera 4 segundos, avanza 5 pasos, espera 2 segundos, gira 180° segundos, espera 4 segundos (y se repitiera infinitamente).
Comentarios recientes