private void FinishEvent(Timer_Coroutine logic)
 {
     mProgressTimers.Remove(logic);
     CurNum++;
     SendUpdateAction();
     PlayFun(null);
 }
Exemple #2
0
        public Timer_Coroutine RegCoroutine(IEnumerator tor, Timer_Coroutine.TimerCall FinishedEvent, MonoBehaviour mo = null)
        {
            Timer_Coroutine coroutine = new Timer_Coroutine(tor, FinishedEvent, mo);

            mTimerStorage.RegYield(coroutine);
            return(coroutine);
        }
        private IEnumerator TimerCoroutine(Timer_Coroutine timer)
        {
            timer.Start();
            IEnumerator tor = timer.GetIEnumerator();

            while (timer.state != TEvent.EventState.ES_Stop)
            {
                if (timer.IsValid())
                {
                    if (timer.state == TEvent.EventState.ES_Pause)
                    {
                        yield return(0);
                    }
                    else
                    {
                        if (tor != null && tor.MoveNext())
                        {
                            yield return(tor.Current);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                else
                {
                    timer.LogShow();
                    break;
                }
            }
            timer.End();
        }
 public void AddTimer(Timer_Coroutine cor)
 {
     mTimers.Add(cor);
     MaxNum++;
 }
 public Timer_Coroutine RegYield(Timer_Coroutine timer)
 {
     TimerController.SetYieldTimer(timer);
     mYieldEvent[timer.handle] = timer;
     return(timer);
 }
 internal static Timer_Coroutine SetYieldTimer(Timer_Coroutine timer)
 {
     instance.StartCoroutine(instance.TimerCoroutine(timer));
     return(timer);
 }
Exemple #7
0
 public void Send(Action <FDownloader> callBack)
 {
     Timer_Coroutine.SetTimer(SendDownloader(callBack), null);
 }