Unity C#

StartCoroutine в Unity C#: запуск корутин с примерами

Метод StartCoroutine в Unity запускает корутины (сопрограммы). Корутины растягивают действия во времени, не блокируя основной игровой поток. Это удобно для задержек, анимаций и асинхронной логики.

Особенности

  • Асинхронное выполнение: разбивает код на части, которые исполняются через заданные интервалы.
  • Управление временем: удобно делать операции с задержкой — например, подождать пару секунд перед следующим шагом.
  • Работа с IEnumerator: метод запускает функцию, возвращающую IEnumerator — это основа корутин.

Пример кода

Корутина пишет сообщение, ждёт 2 секунды и пишет ещё одно:

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour
{
    // Метод Start запускает корутину
    void Start()
    {
        StartCoroutine(DelayedAction());
    }

    // Пример корутины
    IEnumerator DelayedAction()
    {
        Debug.Log("Начало корутины.");

        // Задержка на 2 секунды
        yield return new WaitForSeconds(2);

        Debug.Log("Корутина завершена.");
    }
}

Корутины останавливаются сами, если объект, на котором они запущены, уничтожается. Завершить вручную можно через StopCoroutine, передав ссылку на корутину или её имя.