Пример #1
0
    IEnumerator TiliRecoverCorou()
    {
        while (!destroyed)
        {
            System.TimeSpan ts1 = new System.TimeSpan(System.DateTime.Now.Ticks);
            System.TimeSpan ts2 = new System.TimeSpan(System.Convert.ToDateTime(SettingManager.Instance.TiliRecoverTime).Ticks);

            System.TimeSpan ts       = ts1.Subtract(ts2).Duration();
            int             count    = (int)(ts.TotalSeconds) / recoverDuration;
            int             remained = (int)(ts.TotalSeconds) % recoverDuration;
            count = SettingManager.Instance.TotalTili + count;
            SettingManager.Instance.TotalTili = Mathf.Min(20, count);

            if (SettingManager.Instance.TotalTili >= 20)
            {
                tiliRemained.gameObject.SetActive(false);
                EventService.Instance.GetEvent <TiliChangeEvent>().Publish(SettingManager.Instance.TotalTili);
                break;
            }
            else
            {
                tiliRemained.gameObject.SetActive(true);
                tiliRemained.text = Ultilities.ConvertSecondToTime(recoverDuration - remained);
                if (remained <= 0)
                {
                    SettingManager.Instance.TotalTili += 1;
                    EventService.Instance.GetEvent <TiliChangeEvent>().Publish(SettingManager.Instance.TotalTili);
                }
            }

            yield return(new WaitForSeconds(1));
        }
    }
Пример #2
0
    /// <summary>
    ///  倒计时
    /// </summary>
    /// <param name="seconds">总时间</param>
    /// <returns></returns>
    public IEnumerator DoCountDown(int seconds)
    {
        while (isStop)
        {
            if (seconds - Time.timeSinceLevelLoad < 0)
            {
                StopCoroutine("DoCountDown");
                ResultDialog.Popup(false);
                yield return(isStop = false);

                break;
            }

            UIBattleSceneLogic.Instance.TimeChange(Ultilities.ConvertSecondToTime((int)(seconds - Time.timeSinceLevelLoad)));
            yield return(new WaitForSeconds(1f));
        }
    }