102 lines
2.2 KiB
C#
102 lines
2.2 KiB
C#
|
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using System.Collections;
|
|||
|
using Games.GlobeDefine;
|
|||
|
using GCGame.Table;
|
|||
|
using GCGame;
|
|||
|
|
|||
|
public class CombatValueAnim : UIControllerBase<CombatValueAnim>
|
|||
|
{
|
|||
|
#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");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|