private void UpdateCurvePoints() { int dInd = _isForwardDirection ? 1 : -1; int[] indexes = Path.GetSplinePointIndexes((_nextInd - dInd + Path.Waypoints.Count) % Path.Waypoints.Count, _isForwardDirection); _splineCurve.ApplyPoints( Path.Waypoints[indexes[0]].transform.position, Path.Waypoints[indexes[1]].transform.position, Path.Waypoints[indexes[2]].transform.position, Path.Waypoints[indexes[3]].transform.position); _partTime = GetPartPassTime(_nextInd); }