//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, November 28, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class ExperienceOpenWin : Window { //经验显示 #region Built-in public float TIME = 60f; private float coentTime = 0; private int billionsExperience = 0;//获取亿经验 private ulong unitExperience = 0;//获取单位经验 [SerializeField] GameObject m_ExperienceObj; [SerializeField] Text m_ExperienceText; [SerializeField] RectTransform GameObject; [SerializeField] RectTransform StartPoint; [SerializeField] RectTransform EndPoint; [SerializeField] UIEffect m_Uieffect; protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { m_Uieffect.Play(); m_ExperienceObj.SetActive(false); coentTime = 0; billionsExperience = 0; unitExperience = 0; PlayerMainDate.Event_Experience += OnExperience; ChatTip.OnChatUpEvent += OnChatUpEvent; if(ChatTip.Inst != null) PositionModification(ChatTip.Inst.IsChatUp); } protected override void OnAfterOpen() { } protected override void OnPreClose() { PlayerMainDate.Event_Experience -= OnExperience; ChatTip.OnChatUpEvent -= OnChatUpEvent; } protected override void OnAfterClose() { } private void OnChatUpEvent() { PositionModification(ChatTip.Inst.IsChatUp); } private void PositionModification(bool _bool) { if (_bool) { GameObject.localPosition = EndPoint.localPosition; } else { GameObject.localPosition = StartPoint.localPosition; } } private void OnExperience(int _source, int _ExpPoint, int _Exp) { if (_source == 2) { billionsExperience += _ExpPoint; unitExperience += (ulong)_Exp; } } string ExperienceIntegration(ulong unitExperience) { return UIHelper.ReplaceLargeNum(unitExperience); } protected override void LateUpdate() { coentTime += Time.deltaTime; int tmpTime = (int)coentTime; //10秒更新一次 if (tmpTime % 10 == 0 && tmpTime / 10 != 0) { ulong allExp = (ulong)((Constants.ExpPointValue * (ulong)billionsExperience + unitExperience) / coentTime * 60); if (allExp > 0) { m_ExperienceObj.SetActive(true); m_ExperienceText.text = ExperienceIntegration(allExp); } else { Close(); } } if (coentTime >= TIME) { coentTime = 0; billionsExperience = 0; unitExperience = 0; } } #endregion } }