Unité - IEnumerator du yield return null

Je suis en train d'essayer de comprendre IEnumerator & Coroutine dans le contexte de l'Unité et ne suis pas trop confiant sur ce que le "yield return null" effectue. Pour le moment, je crois qu'il est fondamentalement des pauses et des attentes pour la prochaine image et dans l'image suivante, il va revenir en arrière pour effectuer le tout relevé à nouveau.

Si je quitte le "yield return null" il semble que l'objet va passer instantanément à sa destination ou peut-être "sauter un grand nombre de cadres". Donc je suppose que ma question est comment est-ce que "yield return null" fonction au sein de cette boucle et pourquoi est-il nécessaire de l'avoir.

void Start () {
    StartCoroutine(Move());
}

IEnumerator Move(){

    while (a > 0.5f){

        ... (moves object up/down)

        yield return null; //<---------
    }

    yield return new WaitForSeconds(0.5f);

    .... (moves object up/down)

    StartCoroutine(Move());
}
Je ne suis pas familier avec les Coroutines moi-même, mais je pense qu'ils vont exécuter une fois par image (ou quelque chose) et le yield return est en fait un raccourci pour dire "attendre jusqu'à la prochaine mise à jour pour continuer". Si vous ne l'avez pas, la boucle while va courir tout le chemin à l'achèvement des travaux sur une mise à jour unique, c'est pourquoi l'objet se déplace instantanément sans elle.

OriginalL'auteur WonderfulWonder | 2017-01-18