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, передав ссылку на корутину или её имя.