예제 #1
0
 public PathRequest(pathfinding.Pathfinding _requester, Vector2 _startPosition, Vector2 _endPosition, Grid _grid)
 {
     startPosition = _startPosition;
     endPosition   = _endPosition;
     requester     = _requester;
     grid          = _grid;
 }
예제 #2
0
    public static void SearchPathRequest(pathfinding.Pathfinding requester, Vector3 startPos, Vector3 endPos)
    {
        //For showing path counting process. Resets grid.
        Grid.openList.Clear();
        Grid.closedList.Clear();
        Grid.pathFound = false;

        PathRequest request = new PathRequest(requester, startPos, endPos);

        pathRequests.Add(request);
    }
예제 #3
0
    public static IEnumerator CountPath(pathfinding.Pathfinding requester, Vector3 startPos, Vector3 endPos)
    {
        Node start = Grid.instance.ClosestNodeFromWorldPoint(startPos);
        Node end   = Grid.instance.ClosestNodeFromWorldPoint(endPos);

        StartThreadedFunction(() => { FindPath(start, end); });

        while (currentThread.IsAlive)
        {
            yield return(null);
        }
        readyToTakeNewPath = true;

        instance.StartCoroutine(requester.PathCountDelay());
        requester.OnPathFound(currentPath);
    }
예제 #4
0
 public static void SearchPathRequest(pathfinding.Pathfinding requester, Vector2 startPos, Vector2 endPos, Grid grid)
 {
     if (grid.useThreading)
     {
         PathRequest request = new PathRequest(requester, startPos, endPos, grid);
         pathRequests.Add(request);
     }
     else
     {
         Node      start   = Grid.instance.ClosestNodeFromWorldPoint(startPos);
         Node      end     = Grid.instance.ClosestNodeFromWorldPoint(endPos);
         Vector2[] newPath = AStar.FindPath(start, end, Grid.instance);
         requester.OnPathFound(newPath);
         instance.StartCoroutine(requester.PathCountDelay());
     }
 }
예제 #5
0
 public PathRequest(pathfinding.Pathfinding _requester, Vector3 _startPosition, Vector3 _endPosition)
 {
     startPosition = _startPosition;
     endPosition   = _endPosition;
     requester     = _requester;
 }