private void TryProcessNext()
        {
            if (!processingPath && pathRequestQueue.Count > 0)
            {
                currentPathRequest = pathRequestQueue.Dequeue();
                processingPath     = true;

                pathfinding.StartFindPath(currentPathRequest.pathStart, currentPathRequest.pathEnd);
            }
        }
        public static void RequestPath(Vector3 pathStart, Vector3 pathEnd, Action <Vector2[], bool> callback)
        {
            if (instance == null)
            {
                instance = FindObjectOfType <PathRequestManager>();
            }

            PathRequest newRequest = new PathRequest(pathStart, pathEnd, callback);

            instance.pathRequestQueue.Enqueue(newRequest);
            instance.TryProcessNext();
        }