protected override void Awake() { base.Awake(); for (int i = 0; i < _waypoints.Length; i++) { if (_waypoints[i] != null) { _waypoints[i].Owner = this; } } _path = GetPath(this, false); if (_waypointsAnimate) { _autoCleanRoutine = this.StartRadicalCoroutine(this.AutoCleanRoutine(), RadicalCoroutineDisableMode.Pauses); } }
public static IConfigurableIndexedWaypointPath GetPath(WaypointPathComponent c, bool cloneWaypoints) { IConfigurableIndexedWaypointPath path = null; switch (c._pathType) { case PathType.Cardinal: path = new CardinalSplinePath(); break; case PathType.Linear: path = new LinearPath(); break; case PathType.BezierChain: path = new BezierChainPath(); break; case PathType.BezierSpline: path = new BezierSplinePath(); break; } if (path != null) { path.IsClosed = c._closed; if (c._waypoints != null) { for (int i = 0; i < c._waypoints.Length; i++) { if (cloneWaypoints) { path.AddControlPoint(new Waypoint(c._waypoints[i])); } else { path.AddControlPoint(c._waypoints[i]); } } } } return(path); }
public static IConfigurableIndexedWaypointPath GetPath(PathType type, IEnumerable <IWaypoint> waypoints, bool isClosed, bool cloneWaypoints) { IConfigurableIndexedWaypointPath path = null; switch (type) { case PathType.Cardinal: path = new CardinalSplinePath(); break; case PathType.Linear: path = new LinearPath(); break; case PathType.BezierChain: path = new BezierChainPath(); break; case PathType.BezierSpline: path = new BezierSplinePath(); break; } if (path != null) { path.IsClosed = isClosed; foreach (var wp in waypoints) { if (cloneWaypoints) { path.AddControlPoint(new Waypoint(wp)); } else { path.AddControlPoint(wp); } } } return(path); }