Unity中常用的插值函数
1. Lerp
介绍
线性插值,根据t值在a和b之间线性插值。
方法
Lerp(a, b, t)
参数a为起始值,b为结束值,t为插值因子(0-1范围)。
示例
float result = Mathf.Lerp(1f, 10f, 0.5f);
// result = 5.5 (1和10之间的一半)
2. LerpAngle
介绍
角度插值,可以处理超过360度的情况。
方法
Mathf.LerpAngle(a, b, t)
示例
float angle = Mathf.LerpAngle(90f, 450f, 0.5f);
// angle = 270f (90度和450度之间的一半)
3. MoveTowards
介绍
近似逼近,小于一个阈值时直接返回目标值。
方法
MoveTowards(current, target, maxDelta)
示例
float result = Mathf.MoveTowards(1f, 10f, Time.deltaTime);
// 如果Time.deltaTime较大,result直接等于10
4. SmoothStep
介绍
平滑插值,具有零阶导数,更平滑。
方法
Mathf.SmoothStep(from, to, t)
示例
float result = Mathf.SmoothStep(1f, 10f, 0.5f);
// result约等于5.5,但曲线更平滑
总结
根据需要选择不同的插值函数,可以使动画和数值转换更流畅。