using System; using System.Collections.Generic; namespace Coroutine { /// /// This class can be used for static coroutine handling of any kind. /// Note that it uses an underlying object for management. /// public static class CoroutineHandler { private static readonly CoroutineHandlerInstance Instance = new CoroutineHandlerInstance(); /// public static int TickingCount => Instance.TickingCount; /// public static int EventCount => Instance.EventCount; /// public static ActiveCoroutine Start(IEnumerable coroutine, string name = "", int priority = 0) { return Instance.Start(coroutine, name, priority); } /// public static ActiveCoroutine Start(IEnumerator coroutine, string name = "", int priority = 0) { return Instance.Start(coroutine, name, priority); } /// public static ActiveCoroutine InvokeLater(Wait wait, Action action, string name = "", int priority = 0) { return Instance.InvokeLater(wait, action, name, priority); } /// public static void Tick(double deltaSeconds) { Instance.Tick(deltaSeconds); } /// public static void RaiseEvent(Event evt) { Instance.RaiseEvent(evt); } /// public static IEnumerable GetActiveCoroutines() { return Instance.GetActiveCoroutines(); } } }