From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- Client/Assets/Scripts/XMainClient/XNumberTween.cs | 135 ++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XNumberTween.cs (limited to 'Client/Assets/Scripts/XMainClient/XNumberTween.cs') diff --git a/Client/Assets/Scripts/XMainClient/XNumberTween.cs b/Client/Assets/Scripts/XMainClient/XNumberTween.cs new file mode 100644 index 00000000..2deae725 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XNumberTween.cs @@ -0,0 +1,135 @@ +using System; +using UILib; +using UnityEngine; +using XMainClient.UI; +using XUtliPoolLib; + +namespace XMainClient +{ + public class XNumberTween : MonoBehaviour + { + public float tweenDuaration + { + get + { + return this.m_tweenDuaration; + } + set + { + this.m_tweenDuaration = value; + this.userTweenDuaration = value; + } + } + + public IXUILabel Label + { + get + { + return this.m_uiLabel; + } + } + + public IXUITweenTool IconTween + { + get + { + return this.m_uiIconTween; + } + } + + private IXUILabel m_uiLabel; + + private IXUITweenTool m_uiIconTween; + + private ulong m_currentNumber = 0UL; + + private ulong m_targetNumber = 0UL; + + private long m_deltaNumber = 0L; + + private string m_tweenPostfix; + + private float m_tweenLeftTime = 0.5f; + + private float m_tweenDuaration = 0.5f; + + public float userTweenDuaration = 0.5f; + + public static XNumberTween Create(Transform t) + { + XNumberTween xnumberTween = t.gameObject.GetComponent(); + bool flag = xnumberTween == null; + if (flag) + { + xnumberTween = t.gameObject.AddComponent(); + } + Transform transform = t.Find("value"); + bool flag2 = transform != null; + if (flag2) + { + xnumberTween.m_uiLabel = (transform.GetComponent("XUILabel") as IXUILabel); + } + transform = t.Find("icon"); + bool flag3 = transform != null; + if (flag3) + { + xnumberTween.m_uiIconTween = (t.Find("icon").GetComponent("XUIPlayTween") as IXUITweenTool); + } + return xnumberTween; + } + + public static XNumberTween Create(IXUILabel label) + { + XNumberTween xnumberTween = label.gameObject.AddComponent(); + xnumberTween.m_uiLabel = label; + return xnumberTween; + } + + public void SetNumberWithTween(ulong target, string postfix = "", bool instant = false, bool dynamicAdjustDuaration = true) + { + bool flag = target == this.m_currentNumber || instant; + if (flag) + { + this.m_uiLabel.SetText(XSingleton.singleton.NumberFormat(target) + postfix); + this.m_targetNumber = target; + this.m_currentNumber = target; + } + else + { + this.m_tweenDuaration = this.userTweenDuaration; + this.m_targetNumber = target; + this.m_deltaNumber = (long)(this.m_targetNumber - this.m_currentNumber); + this.m_tweenPostfix = postfix; + if (dynamicAdjustDuaration) + { + long num = Math.Abs(this.m_deltaNumber); + bool flag2 = num < 20L; + if (flag2) + { + this.m_tweenDuaration = this.userTweenDuaration * (float)num / 20f; + } + } + this.m_tweenLeftTime = this.m_tweenDuaration; + } + } + + private void Update() + { + bool flag = this.m_currentNumber != this.m_targetNumber; + if (flag) + { + this.m_tweenLeftTime -= Time.deltaTime; + bool flag2 = this.m_tweenLeftTime <= 0f; + if (flag2) + { + this.m_currentNumber = this.m_targetNumber; + } + else + { + this.m_currentNumber = this.m_targetNumber - (ulong)((long)((float)this.m_deltaNumber * this.m_tweenLeftTime / this.m_tweenDuaration)); + } + this.m_uiLabel.SetText(string.Format("{0}{1}", XSingleton.singleton.NumberFormat(this.m_currentNumber), this.m_tweenPostfix)); + } + } + } +} -- cgit v1.1-26-g67d0