🪄Управление корутинами
Автор: Дмитрий Прокопьев
Как запустить корутину?
Для этого в классе MonoBehaviour есть метод StartCoroutine, он принимает в себя IEnumerator - результат вызова метода корутины:
Coroutine coroutine = StartCoroutine(DoSomething());Как сохранить корутину?
Сохранять корутину нужно не всегда, иногда мы можем запустить ее и забыть про нее. Но если мы хотим дальше ее контролировать, то ее будет удобно сохранить в поле:
private Coroutine _coroutine;
private void Start()
{
_coroutine = StartCoroutine(DoSomething());
}Как остановить корутину?
Для остановки в классе MonoBehaviour есть метод StopCoroutine:
StopCoroutine(_coroutine);В качестве параметра он принимает в себя экземпляр класса Coroutine - ту корутину, которую мы хотим остановить. Для этого мы обычно корутины и сохраняем.
Важно. До первой инициализации поле с корутиной будет равно null. Важно предусмотреть это:
А так можно остановить все корутины на объекте:
Важно. Мы используем метод StopAllCoroutines() только когда хотим остановить все без исключения корутины компонента. Такие сценарии крайне редкие, поэтому и метод мы применяем редко.
Полноценный пример управления корутиной
Last updated
Was this helpful?