本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1.Mathf.Approximately
判断浮点数是否大致相等, 大致误差范围是 Mathf.Epsilon 小浮点数。
2.Mathf.Clamp
钳制返回值的大小,eg: Mathf.Clamp(Time.time, 1.0F, 3.0F),限制value的值在min(1.0F)和max(3.0F)之间。
3.Mathf.Lerp
插值函数,Mathf.Lerp(float a,float b,float t);
t 被夹持(clamp)在0到1之间,eg:
- t =0,返回a。
- t =0.5,返回a,b中间的值。
- t =1,返回b。
4.Mathf.PingPong
Mathf.PingPong(float t,float length), 返回在0到length之间往返的一个值。(0增长到length,然后从length减少到0,如此往返)
5.Mathf.InverseLerp
Mathf.InverseLerp(float a,float b,float value);
根据value反向得到a,b之前的插值比例系数。(与Mathf.Lerp相反)
eg:
Mathf.InverseLerp(5,10,8) = 0.6
6.Mathf.LerpUnclamped
不被夹持的插值函数。(不被夹持的范围随着t改变) Mathf.LerpUnclamped(float a,float b,float t);
eg: Mathf.LerpUnclamped(3,10,2) = 14
7.Mathf.Repeat
eg: Mathf.Repeat(Time.time,2); 这个与Mathf.PingPong的区别是,这个是到了2直接从0开始从头来, pingpong是往返。
循环t值,从来不会比length大,并且从不会小于0,取值在0~length之间。
8.Mathf.PerlinNoise
噪点函数,返回0到1之间的值。个人理解,也是一个类似随机数的方法,不过随机的数值更平滑。
9.Mathf.MoveTowards
这实际上和 Mathf.Lerp相同,而是该函数将确保我们的速度不会超过maxDelta。maxDelta为负值将目标从推离。
10.Mathf.MoveTowardsAngle
类似MoveTowards,但是当它们环绕360度时确保插值正确(范围就是0到360,如果一开始就是360,则不旋转)
使用如下:
11.Mathf.SmoothStep
Mathf.SmoothStep(float from,float to,float t);
-
平滑的切换,和lerp比较相似,但是变化速率最开始是较快,后面变化速率较慢。
-
一般可以用来做切场景,场景变黑,睁开眼睛从黑变亮等等的效果。
参考文章:参考此CSDN博客