public static void RequestPath(Vector3 pathStart, Vector3 pathEnd, Action <Vector3[], Vector3, bool> callback)
    {
        OutdoorPathRequest newRequest = new OutdoorPathRequest(pathStart, pathEnd, callback);

        instance.pathRequestQueue.Enqueue(newRequest);
        instance.TryProcessNext();
    }
 void TryProcessNext()
 {
     if (!isProcessingPath && pathRequestQueue.Count > 0)
     {
         currentPathRequest = pathRequestQueue.Dequeue();
         isProcessingPath   = true;
         pathfinding        = gameObject.GetComponent <OutdoorPathfinding>();
         pathfinding.StartFindPath(currentPathRequest.pathStart, currentPathRequest.pathEnd);
     }
 }