//-------------------------------------------------------- // [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) { string Str = null; float Number = 0; if (unitExperience >= 100000000) { Number = (float)Math.Round((double)unitExperience / 100000000, 2); Str = Number.ToString() + Language.Get("KnapS115"); return Str; } else if (unitExperience >= 10000 && unitExperience < 100000000) { Number = (float)Math.Round((double)unitExperience / 10000, 2); Str = Number.ToString() + Language.Get("KnapS114"); return Str; } else if (unitExperience < 10000) { if (unitExperience != 0) { Str = unitExperience.ToString(); return Str; } else { return string.Empty; } } return null; } 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 } }