private Vector3 LocalPathPoint(float t) { int requestedSegment; if (t >= 1f) { t = 1f; requestedSegment = SegmentCount() - 1; } else { t = Mathf.Clamp01(t) * SegmentCount(); requestedSegment = (int)t; t -= requestedSegment; } Vector3[] segmentPoints = LocalSegment(requestedSegment); return(Bezier.CubicPoint(segmentPoints[0], segmentPoints[1], segmentPoints[2], segmentPoints[3], t)); }