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);
}
}
}