向量插值运算

目录

1.线性插值

2.球形插值

3.球形插值的运用——模拟太阳的东升西落


1.线性插值

(用于跟随移动,摄像机跟随)

Vector3.Lerp(start,end,t);

对两个点进行插值运算,t的取值范围为0-1.

公式:result=start+(end-start)*t

 1 先快后慢,每帧改变start位置,位置无限接近,但不会得到end位置。

A.position=Vector3.Lerp(A.position,target.position,Time.deltaTime);

 2 匀速,每帧改变时间,当t>=1时,得到结果。但是直接写当t为1时,再次改变目标位置它就会直接瞬移到我们的目标位置,所以我们需要重新对时间赋值。代码如下:

if(nowTarget!=target.position)
{
  nowTarget=target.position;
  time=0;
  startPos=B.position;
}
time+=Time.deltaTime;
B.position=Vector3.Lerp(startPos,nowTarget,time);

2.球形插值

(用于曲线运动,模拟太阳运动弧线)

C.position=Vector3.Slerp(Vector3.right*10,Vector3.forward*10,time*0.1f);

3.球形插值的运用——模拟太阳的东升西落

​
C.position=Vector3.Slerp(Vector3.right*10,Vector3.left*10+Vector3.up*0.1f,time*0.01f);
//加上一点点y值就会向上运动

​

猜你喜欢

转载自blog.csdn.net/2303_76354097/article/details/133933200