public static Coroutine StartCoroutine(IEnumerator routine, bool destroyWhenChangeLevel) { //use global MonoBehaviour exe coroutine if (!destroyWhenChangeLevel && globalBehaviour != null) { return(globalBehaviour.StartCoroutine(routine)); } //用当前场景内的MonoBehavior执行协成 if (sceneBehaviour == null) { sceneBehaviour = new GameObject("CoroutineManager").AddComponent <CoroutineBehaviour>(); } return(sceneBehaviour.StartCoroutine(routine)); }
public static Coroutine StartCoroutine(string methodName, object value = null) { if (behaviour == null) { var coroutineManager = new GameObject("CoroutineManager"); Object.DontDestroyOnLoad(coroutineManager); behaviour = coroutineManager.AddComponent <CoroutineBehaviour>(); } return(behaviour.StartCoroutine(methodName, value)); }
public static Coroutine StartCoroutine(IEnumerator routine, bool bDestroyWhenLoadLevel) { if (!bDestroyWhenLoadLevel) { return(mMain.StartCoroutine(routine)); } if (mPrivate == null) { mPrivate = new GameObject("CoroutineManager").AddComponent <CoroutineBehaviour>(); } return(mPrivate.StartCoroutine(routine)); }
public static int Create(System.Action func, float delay, float interval = 0) { sCount++; sCoroutines[sCount] = instance_.StartCoroutine(TimerFunc(sCount, func, delay, interval)); return(sCount); }
public static void PerformAfterCoroutine <T>(this Action action, int frames = 1) where T : YieldInstruction, new() { CoroutineBehaviour.StartCoroutine <T>(action, frames); }