コード例 #1
0
 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));
 }
コード例 #2
0
 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));
 }
コード例 #3
0
 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));
 }
コード例 #4
0
 public static int Create(System.Action func, float delay, float interval = 0)
 {
     sCount++;
     sCoroutines[sCount] = instance_.StartCoroutine(TimerFunc(sCount, func, delay, interval));
     return(sCount);
 }
コード例 #5
0
 public static void PerformAfterCoroutine <T>(this Action action, int frames = 1) where T : YieldInstruction, new()
 {
     CoroutineBehaviour.StartCoroutine <T>(action, frames);
 }