How to do it...

Even though this recipe is only defining a function, please take into consideration the comments in the code for better understanding of the implementation and code flow:

  1. Declare the GetPathBFS function:
public List<Vertex> GetPathBFS(GameObject srcObj, GameObject dstObj) 
{ 
    if (srcObj == null || dstObj == null) 
        return new List<Vertex>(); 
    // next steps 
}
  1. Declare and initialize the variables we need for the algorithm:
Vertex[] neighbours; Queue<Vertex> q = new Queue<Vertex>(); Vertex src = GetNearestVertex(srcObj.transform.position); Vertex dst = GetNearestVertex(dstObj.transform.position); Vertex v; int[] previous = new int[vertices.Count]; for (int i = 0; i < previous.Length; i++) previous[i] = -1; previous[src.id] = ...

Get Unity 2018 Artificial Intelligence Cookbook - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.