赞
踩
有时需要这样的效果:UI的数字从一个值变化到另一个值,是一个不断增大的过程,而且是一种由慢变快的过程。就实现这种效果来说,可以DoTween这类组件实现,也可以用unity的曲线AnimationCurve实现。这里说的是另外一种方式,就是自己实现指数增长变快的过程。
指数曲线和函数,中学就学过。它一条很陡峭的曲线,大白话就是越来愈大,而且变的越来越快。
我们可以先把变化区间从指数公式计算出来,当时y的开始和结束,x轴看成时间。然后用累计时间在y的开始和结束之间做插值,这里给出两段代码,分别用到初始化和Update中
- //变化范围
- int change = target - orgNum;
- //指数, 指数范围即是时间范围
- beginExp = 0; //e^beginExp =1
- endExp = Mathf.Log(change); // e^endExp = change
- currExp = Mathf.Lerp(beginExp, endExp, currveVale);
- currNum = orgNum + (int)Mathf.Exp(
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。