//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, April 27, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace vnxbqy.UI { public class MainWinYinJiBehaviour : MonoBehaviour { [SerializeField] RectTransform m_Content; [SerializeField] Image m_Circle; [SerializeField] Text m_Number; float circleTotalTime { get { return PlayerDatas.Instance.baseData.yinjiTime * 0.001f; } } YinJiModel model { get { return ModelCenter.Instance.GetModel(); } } private void OnEnable() { PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh; DTC0102_tagCDBPlayer.afterPlayerDataInitializeEvent += DisplayYinJiCount; DisplayYinJiCount(); } private void OnDisable() { DTC0102_tagCDBPlayer.afterPlayerDataInitializeEvent -= DisplayYinJiCount; PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh; } private void LateUpdate() { if (model.yinjiEndTime > Time.time) { var fillAmount = 0f; if (circleTotalTime != 0f) { fillAmount = (model.yinjiEndTime - Time.time) / circleTotalTime; } m_Circle.fillAmount = fillAmount; } else { if (m_Circle.fillAmount != 0f) { m_Circle.fillAmount = 0f; } } if (PlayerDatas.Instance.baseData.yinjiCount > 0) { if (!this.gameObject.activeSelf) { m_Content.SetActive(true); } } else { if (this.gameObject.activeSelf) { m_Content.SetActive(false); } } } private void OnPlayerDataRefresh(PlayerDataType type) { switch (type) { case PlayerDataType.CDBPlayerRefresh_YinjiCount: DisplayYinJiCount(); break; } } private void DisplayYinJiCount() { var count = PlayerDatas.Instance.baseData.yinjiCount; var effectId = 0; if (model.yinjiCountBuf == 0 && count > 0) { effectId = 5221; } else if (model.yinjiCountBuf != 0 && count == 0) { effectId = 5223; } else if (model.yinjiCountBuf != 0 && count != 0) { effectId = 5222; } if (PlayerDatas.Instance.baseData.yinjiCount > 0) { m_Content.SetActive(true); m_Number.text = count > 0 ? count.ToString() : ""; } else { m_Content.SetActive(false); } if (effectId != 0) { EffectMgr.Instance.PlayUIEffect(effectId, 1500, this.transform, false); } model.yinjiCountBuf = PlayerDatas.Instance.baseData.yinjiCount; } } }