Часто в корутинах нужно использовать различные циклы. Например, это может пригодиться, когда мы заранее знаем количество проходов цикла или ожидаем какое-то условие

Циклы с условиемLink to Циклы с условием

[Action(English: "Coroutine loop with condition", Russian: "Корутинный цикл с условием")]  
public IEnumerator WhileLoop()  
{  
    while (transform.position.x < 10f)  
    {        
	    yield return null;  
        Debug.Log("Условие пока не выполнено");  
    }  
    Debug.Log("Условие выполнено");  
}
C#

Циклы со счетчикомLink to Циклы со счетчиком

[Action(English: "Coroutine loop with counter", Russian: "Корутинный цикл со счетчиком")]  
public IEnumerator ForLoop(int count)  
{  
    WaitForSeconds waitForOneSecond = new WaitForSeconds(1f);  
  
    for (int i = 0; i < count; i++)  
    {        yield return waitForOneSecond;  
  
        Debug.Log($"Действие цикла № {i}");  
    }
}
C#