private Vector3 GetPointRaw(float t)
{
int base_coord = (int)t * 3;
float t_sub = t - (int)t;
if (t == (int)t && t != 0)
{
base_coord -= 3;
t_sub = 1;
}
if (base_coord + 3 >= points.Length)
{
return(transform.TransformPoint(points[points.Length - 1]));
}
if (base_coord < 0)
{
return(transform.TransformPoint(points[0]));
}
Vector3 p0 = points[base_coord];
Vector3 p1 = points[base_coord + 1];
Vector3 p2 = points[base_coord + 2];
Vector3 p3 = points[base_coord + 3];
return(Bezier.PointOnBezier(p0, p1, p2, p3, t_sub));
}