U2L4-5——向量插值计算
U2L4-5——向量插值计算
向量插值计算
Vector3也有为向量插值计算的方法,(插值计算相关概念)
本章代码关键字
1 | Vector3.Lerp() //向量线性插值 |
线性插值
一般用于跟随移动,摄像机跟随等
对两个点进行插值计算,t的取值范围是0~1
公式:result = start + (end - start) * t
1 | A.position = Vector3.Lerp(A.position, target.position, Time.deltaTime); |
线性插值计算也有两种应用
先快后慢趋近
先快后慢 每帧改变start位置 位置无限接近但不会得到end位置
1 | //result = start + (end - start) * t |
匀速接近
匀速 每帧改变时间 当>=1时 得到结果
1 | //注意,最终匀速移动 当time>=1时 改变了目标位置后 他会直接瞬移到我们的目标位置 |
球形插值
球形插值的轨迹在一个圆形上,涉及四元数,
用于曲线运动,例如模拟太阳运动弧线等,实际开发时,用的会较少
1 | C.position = Vector3.Slerp(Vector3.right * 10, Vector3.forward * 10, time * 0.1f); |
线性和球形插值的区别
线性插值的轨迹是直线,球形插值的轨迹是圆弧形轨迹
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!