Unity C#

StopCoroutine в Unity C# — как остановить корутину

Метод StopCoroutine в Unity останавливает корутины, ранее запущенные через StartCoroutine. Это позволяет управлять асинхронными процессами, прерывая их в нужный момент.

Метод поддерживает несколько способов остановки: по объекту корутины, по имени метода или по ссылке на саму корутину — гибкий инструмент для контроля игрового процесса.

Особенности

  • Остановка корутин: завершает выполнение, где бы корутина ни находилась.
  • Гибкость: можно остановить по имени метода, объекту или ссылке.
  • Контроль процесса: полезно для таймеров, анимаций и сложной асинхронной логики.

Пример кода

Корутина крутится в бесконечном цикле, а по пробелу останавливается:

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour
{
    private Coroutine runningCoroutine;

    // Запуск корутины
    void Start()
    {
        runningCoroutine = StartCoroutine(ExampleCoroutine());
    }

    // Метод для остановки корутины
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            StopCoroutine(runningCoroutine);
            Debug.Log("Корутинa остановлена.");
        }
    }

    // Пример корутины
    IEnumerator ExampleCoroutine()
    {
        while (true)
        {
            Debug.Log("Корутинa выполняется...");
            yield return new WaitForSeconds(1f);
        }
    }
}