using System; using System.Collections; using UnityEngine; using UnityEngine.Internal; namespace Stary.Evo.AudioCore { public static class CoroutineHelper { public static CoroutineRunner coroutineRunner; public static void SetRunner() { GameObject runnerObject = new GameObject("CoroutineRunner"); coroutineRunner = runnerObject.AddComponent(); } public static Coroutine StartCoroutine(IEnumerator coroutine) { Coroutine myCoroutine = coroutineRunner.StartCoroutine(coroutine); return myCoroutine; } public static void StopCoroutine(Coroutine myCoroutine) { coroutineRunner.StopCoroutine(myCoroutine); } public class CoroutineRunner : MonoBehaviour { private void OnDestroy() { if (coroutineRunner != null) { coroutineRunner.StopAllCoroutines(); coroutineRunner = null; } } } } }