using UnityEngine; using UnityEngine.UI; using System.Collections; using Games.GlobeDefine; using GCGame.Table; using GCGame; public class CombatValueAnim : UIControllerBase { #region static public static void ShowCombatValueAnim(int orgCombatVal, int curCombatVal) { Hashtable hash = new Hashtable(); hash.Add("OrgVal", orgCombatVal); hash.Add("CurVal", curCombatVal); UIManager.ShowUI(UIInfo.CombatValueAnim, OnCombatValueAnim, hash); } static void OnCombatValueAnim(bool bSuccess, object param) { Hashtable hash = param as Hashtable; if (!bSuccess) { return; } if (hash == null) { return; } if (Instance() != null) { Instance().Show((int)hash["OrgVal"], (int)hash["CurVal"]); } } #endregion public UIImgText _CombatVal; public UIImgText _CombatAddVal; public float _NumJumpTime = 1.5f; public float _NumJumpTimeInterval = 0.1f; private int _OrgVal; private int _CurVal; private int _AddVal; private float _JumpNum; private float _JumpInterval; void OnEnable() { SetInstance(this); } void OnDisable() { SetInstance(null); } public void Show(int orgVal, int curVal) { gameObject.SetActive(false); gameObject.SetActive(true); _OrgVal = orgVal; _CurVal = curVal; _AddVal = _CurVal - _OrgVal; _CombatVal.text = _OrgVal.ToString(); _CombatAddVal.text = _AddVal.ToString(); _JumpNum = _OrgVal; _JumpInterval = _AddVal / _NumJumpTime; } public void Close() { UIManager.CloseUI(UIInfo.CombatValueAnim); } public void StartNumJumpAnim() { CancelInvoke("NumJump"); InvokeRepeating("NumJump", 0, _NumJumpTimeInterval); } private void NumJump() { _JumpNum += _NumJumpTimeInterval * _JumpInterval; _JumpNum = Mathf.Clamp(_JumpNum, _OrgVal, _CurVal); _CombatVal.text = ((int)_JumpNum).ToString(); if (_JumpNum == _CurVal) { CancelInvoke("NumJump"); } } }