//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, November 28, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.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; 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(int _billionsExperience, ulong unitExperience) { string Str = null; float Number = 0; if (_billionsExperience != 0) { Number = (float)Math.Round((double)unitExperience / 100000000, 2); Str = ((float)Math.Round((double)_billionsExperience + Number, 2)).ToString() + Language.Get("KnapS115"); return Str; } else { 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; if (coentTime >= TIME) { if (ExperienceIntegration(billionsExperience, unitExperience) != string.Empty) { m_ExperienceObj.SetActive(true); m_ExperienceText.text = ExperienceIntegration(billionsExperience, unitExperience); } else { Close(); } coentTime = 0; billionsExperience = 0; unitExperience = 0; } } #endregion } }