Unity Корутіни

Корутін — це спеціальна функція, яка дозволяє робити паузи всередині коду

 

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

IEnumerator F1()
{
     print("Start");

     yield return new WaitForSeconds(2);

     print("2 s");

     yield return new WaitForSeconds(2);

     print("4 s");

     yield return new WaitForSeconds(2);

     print("6 s");
}

 

StartCoroutine() — функція, що запускає корутін
IEnumerator — будь-який об’єкт, що підтримує цей інтерфейс
new WaitForSeconds(2) — об’єкт що робить паузу на 2 с
yield return — тимчасова зупинка

 


Згенерувати і вбити ворога, коли він впаде нижче 0

 

public GameObject enemyPref;

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

IEnumerator F1()
{
     GameObject enemy = Instantiate(enemyPref, transform.position, Quaternion.identity);

     while (enemy.transform.position.y > 0)
     {
          yield return null;
     }

     Destroy(enemy);
}

 

yield return null — затримка на один кадр

 

Те саме, але без циклу

 

yield return new WaitUntil(() => enemy.transform.position.y < 0);

 


 

Більше