Mathf.Lerp 使用

参数解析

1
Mathf.Lerp(float a, float b, float t)
参数解析
a开始值
b结束值
t插值值

返回一个 float ,开始值和结束值之间根据浮点数插值的结果。

通过 t 线性插值在A和B之间。

参数 t 夹紧到[0,1]范围内。

  • 当t = 0返回a时
  • 当t = 1返回b
  • 当t = 0.5返回a和b的中点。

使用方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public float LerpContinuedTime =  3.0F;     // 需要插值的持续时间
public float LerpTime; // 当前插值的时间
public AnimationCurve Curve; //可以配置的运动曲线
public float CurValue; //记录当前的值

public void Update()
{
if(LerpTime < LerpContinuedTime)
{
LerpTime += Time.deltaTime;

// 匀速从 0 插值到 100
Mathf.Lerp(0f, 100f, LerpTime/LerpContinuedTime);

// 递减插值,开始的值一直改变,当插值百分比固定的时候,计算出来的值每次比上一次计算的小
CurValue = Mathf.Lerp(CurValue, 100f, 0.1f);

// 根据运动曲线插值,可以实现减速、加速、值先增加再减小等效果
Mathf.Lerp(0f, 100f, LerpTime/LerpContinuedTime, Curve.Evaluate(LerpTime / LerpContinuedTime));
}
}
查看评论