如图所示P0为开始位置 P2为终点位置 为了求出俩点的弧度得出P1
具体运动逻辑如图所示
代码如下
pos传入开始点 转点 结束点的坐标 t表示时间 搭配DoTween的Do方法使用效果最佳
public Vector3 BesselCurve(Vector3[] pos, float t)
{
Vector3[] arr=new Vector3[pos.Length-1];
for (int i = 0; i < arr.Length; i++)
{
arr[i] = pos[i] * (1 - t) + pos[i + 1] * t;
Debug.DrawLine(pos[i], pos[i+1],Color.red);
}
if(arr.Length == 1)
{
return arr[0];
}
else
{
return BesselCurve(arr,t);
}
}