//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 13, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class DungeonBeginCoolDownWin : Window { [SerializeField] Transform m_CoolDownContainer; [SerializeField] Text m_CoolDown; DateTime beginTime = DateTime.Now; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { beginTime = model.GetCoolDownEndTime(DungeonCoolDownType.WaitStart); model.dungeonCoolDownEvent += OnBeginTimeEvent; } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.dungeonCoolDownEvent -= OnBeginTimeEvent; } protected override void OnAfterClose() { } #endregion private void OnBeginTimeEvent(DungeonCoolDownType _type) { if (_type != DungeonCoolDownType.WaitStart) { return; } beginTime = model.GetCoolDownEndTime(_type); } protected override void LateUpdate() { base.LateUpdate(); if (beginTime > DateTime.Now) { var surplusTime =Mathf.Clamp((int)(beginTime - DateTime.Now).TotalSeconds,0,int.MaxValue); m_CoolDown.text = surplusTime.ToString(); if (!m_CoolDownContainer.gameObject.activeInHierarchy) { m_CoolDownContainer.gameObject.SetActive(true); } } else { if (m_CoolDownContainer.gameObject.activeInHierarchy) { m_CoolDownContainer.gameObject.SetActive(false); } } } } }