private static Vector3AnimationCurve GetTangentCache(Vector3 p0, Vector3 p1, Vector3 p2, Vector3 p3, int steps) { var curve = new Vector3AnimationCurve(); //time = distance, value = time var delta = 1f / steps; for (var i = 0; i < steps + 1; i++) { curve.AddKey( delta * i, GetForward( p0, p1, p2, p3, delta * i) .normalized); } return(curve); }