//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, August 11, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class BattleHintWin : Window { [SerializeField] Image m_BattleHint; [SerializeField] ScaleTween m_BattleHintTween; [SerializeField, Header("保留时间")] float m_KeepTime = 2f; bool inBattleHint = false; #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { inBattleHint = false; m_BattleHintTween.gameObject.SetActive(false); } protected override void OnActived() { base.OnActived(); DisplayBattleHint(); BattleHint.Instance.battleHintUpdate += BattleHintUpdate; } protected override void OnAfterOpen() { } protected override void OnPreClose() { BattleHint.Instance.battleHintUpdate -= BattleHintUpdate; } protected override void OnAfterClose() { } #endregion private void BattleHintUpdate() { if (!inBattleHint) { DisplayBattleHint(); } } void DisplayBattleHint() { string iconKey = string.Empty; if (BattleHint.Instance.TryGetBattleHint(out iconKey)) { inBattleHint = true; m_BattleHint.SetSprite(iconKey); m_BattleHint.SetNativeSize(); m_BattleHintTween.gameObject.SetActive(true); m_BattleHintTween.SetStartState(); m_BattleHintTween.Play(OnBattleHintTweenComplete); } } void OnBattleHintTweenComplete() { StartCoroutine(Co_Complete()); } IEnumerator Co_Complete() { yield return WaitingForSecondConst.GetWaitForSeconds(m_KeepTime); inBattleHint = false; m_BattleHintTween.gameObject.SetActive(false); DisplayBattleHint(); } } }