This is an easy, yet powerful, function:
- Define the Smooth function:
public List<Vertex> Smooth(List<Vertex> path) { // next steps here }
- Check whether it is worth computing a new path:
List<Vertex> newPath = new List<Vertex>(); if (path.Count == 0) return newPath; if (path.Count < 3) return path;
- Implement the loops for traversing the list and building the new path:
newPath.Add(path[0]); int i, j; for (i = 0; i < path.Count - 1;) { for (j = i + 1; j < path.Count; j++) { // next steps here } i = j - 1; newPath.Add(path[i]); } return newPath;
- Declare and compute the variables to be used by the ray casting function:
Vector3 origin = path[i].transform.position; Vector3 destination = path[j].transform.position; Vector3 ...