public static Coroutine_ StartCoroutine1(MonoBehaviour b, IEnumerator <object> coroutine, object mutex = null) { var _coroutine = new Coroutine_(coroutine, mutex); _coroutine.StartWith(b); return(_coroutine); }
public static Coroutine_ StartCoroutineSingle(MonoBehaviour b, IEnumerator <object> coroutine, object mutex) { if (mutex == null) { Debug.LogWarning("Mutex is null. Consider using StartCoroutine1 instead."); return(StartCoroutine1(b, coroutine)); } if (!CoroutineMonitor.TryEnter(mutex)) { return(GetInUseBy(mutex)); } var _coroutine = new Coroutine_(coroutine, mutex, true); _coroutine.StartWith(b); return(_coroutine); }