IEnumerator Countdown(int ID, int sec, TimerEverySec EverySecFunction, TimerEnd EndFunction) { if ((bool)TimerList[ID] == true) { yield return(null); } TimerList[ID] = sec; while (sec > 0) { yield return(new WaitForSeconds(1)); sec--; TimerList[ID] = sec; EverySecFunction(); } EndFunction(); TimerList[ID] = true; }
/// <summary> /// 每秒执行函数的倒计时 /// </summary> /// <param name="seconds">倒计时秒数</param> /// <param name="EverySecFunction">每秒调用的函数</param> /// <param name="EndFunction">倒计时为0时 执行的函数</param> public void StartCountdown_EverysecRun(int seconds, TimerEverySec EverySecFunction, TimerEnd EndFunction) { int TimerID = TimerList.Add(false); StartCoroutine(Countdown(TimerID, seconds, EverySecFunction, EndFunction)); }