public Vector3 GetPointOnCurve(int curveIndex, float t) { if (curveIndex >= CurveCount) { return(Vector3.zero); } // 3 points per curve. curveIndex *= 3; return(transform.TransformPoint(Bezier.GetPoint(_points[curveIndex], _points[curveIndex + 1], _points[curveIndex + 2], _points[curveIndex + 3], t))); }
public Vector3 GetPoint(float t) { int curveIndex; if (t >= 1f) { t = 1f; curveIndex = _points.Length - 4; } else { t = Mathf.Clamp01(t) * CurveCount; //Get the time along all curves curveIndex = (int)t; t -= curveIndex; //Saturate t curveIndex *= 3; //3 points per curve } return(transform.TransformPoint(Bezier.GetPoint(_points[curveIndex], _points[curveIndex + 1], _points[curveIndex + 2], _points[curveIndex + 3], t))); }
public Vector3 GetPoint(float t) { return(transform.TransformPoint(Bezier.GetPoint(_points[0], _points[1], _points[2], _points[3], t))); }