示例#1
0
 private void UpdateCurved()
 {
     _splineT += Time.deltaTime / _partTime;
     if (_splineT > 1.0f)
     {
         _splineT = 0.0f;
         TakeNextWaypoint();
         UpdateCurvePoints();
     }
     else
     {
         Vector2 point = _splineCurve.GetPoint(_splineT);
         transform.position = point;
     }
 }
示例#2
0
        private Vector2[] GetDivededPoints(int ind)
        {
            var     points   = new Vector2[11];
            var     pointInd = 0;
            var     indexes  = GetSplinePointIndexes(ind, true);
            Vector2 a        = Waypoints[indexes[0]].transform.position;
            Vector2 b        = Waypoints[indexes[1]].transform.position;
            Vector2 c        = Waypoints[indexes[2]].transform.position;
            Vector2 d        = Waypoints[indexes[3]].transform.position;

            for (float t = 0; t <= 1.001f; t += 0.1f)
            {
                points[pointInd++] = SplineCurve.GetPoint(a, b, c, d, t);
            }
            return(points);
        }