Je comprends le principe des coroutines. Je sais comment obtenir le standard StartCoroutine
/ yield return
pour travailler en C# dans Unity, par exemple invoquer une méthode qui renvoie IEnumerator
via StartCoroutine
et dans cette méthode faire quelque chose, faire yield return new WaitForSeconds(1);
pour attendre une seconde, puis faire autre chose.
Ma question est la suivante : que se passe-t-il réellement en coulisses ? Que fait StartCoroutine
vraiment ? Qu'est-ce que IEnumerator
es WaitForSeconds
de retour ? Comment le StartCoroutine
retourner le contrôle à la partie "autre chose" de la méthode appelée ? Comment tout cela interagit-il avec le modèle de concurrence d'Unity (où beaucoup de choses se passent en même temps sans utiliser de coroutines) ?