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