using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System.Collections; using System; using vnxbqy.UI; using System.Linq; public class CoroutineMgr : SingletonMonobehaviour { public event Action MainHighTipCdTimeEvent;//主界面上层切换CD时间 public void OnMainStartCorUp(float _waitingTime)//顶层面板切换协程开启 { StartCoroutine("TheUpperPanel", _waitingTime); } public void OnMainStopCorUP()//顶层面板切换协程关闭 { _ControlBoolA = false; StopCoroutine("TheUpperPanel"); } bool _ControlBoolA = false; IEnumerator TheUpperPanel(float _waitingTime)//用于主界面的顶层切换 { _ControlBoolA = true; float _currentime = 0; while (_ControlBoolA) { _currentime += Time.deltaTime; if (_currentime >= _waitingTime) { if (NewBieCenter.Instance.inGuiding) { yield break; } if (MainHighTipCdTimeEvent != null) { MainHighTipCdTimeEvent(); } yield break; } yield return null; } } private Dictionary rankBegDict = new Dictionary(); public void StartBegRank(int _type) { if (!rankBegDict.ContainsKey(_type)) { rankBegDict.Add(_type, DateTime.Now); } else { rankBegDict[_type] = DateTime.Now; } } public bool CanBegRank(int _type) { if (!rankBegDict.ContainsKey(_type)) { return true; } var _time = rankBegDict[_type]; return (DateTime.Now - _time).TotalSeconds > 1; } public void OnMysteriousTask()//关于神秘任务 { StartCoroutine("MysteriousTask"); } IEnumerator MysteriousTask() { yield return WaitingForSecondConst.WaitMS500; if (!WindowCenter.Instance.IsOpen()) { WindowCenter.Instance.Open(); } } }