用Unity自带的函数实现,有两种方案方
方案一:使用协程(实际操作没有成功)
方案二:使用Update(在Update中实现)
以下代码是在Update中实现的:
/// <summary>
/// 目标数值
/// </summary>
int _target;
/// <summary>
/// 变化所需要的时间
/// </summary>
float temp;
/// <summary>
/// 变化的时间
/// </summary>
float ok = 0;
/// <summary>
/// 计算出每个数字所需要的时间
/// </summary>
/// <param name="target"></param>
/// <param name="time"></param>
public void ChangeNumber(int target ,float time)
{
_target = target;
int cha = target - curValue;//变化的数值差
temp = ((float)time / (float)cha);
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
ChangeNumber(5, 20.0f);//鼠标按下调用此函数,传递数值和时间
}
if (curValue < _target)//条件判断
{
ok += 0.02f;
if (ok >= temp)
{
curValue += 1;//自增
txt.text = curValue.ToString();
ok = 0;
}
}
}