Esempio n. 1
0
    //Function to return array of pathnode
    private NativeArray <PathNode> GetPathNodeArray()
    {
        JUCLGrid <GridNode> grid             = AIGrid.Instance.pathfindingGrid;
        int2 gridSize                        = new int2(grid.GetWidth(), grid.GetHeight());
        NativeArray <PathNode> pathNodeArray = new NativeArray <PathNode>(gridSize.x * gridSize.y, Allocator.TempJob);

        //Grid initialisation
        for (int x = 0; x < gridSize.x; x++)
        {
            for (int y = 0; y < gridSize.y; y++)
            {
                PathNode pathNode = new PathNode();
                pathNode.x     = x;
                pathNode.y     = y;
                pathNode.index = CalculateIndex(x, y, gridSize.x);

                pathNode.gCost = int.MaxValue;

                pathNode.isWalkable        = grid.GetGridObject(x, y).IsWalkabke();
                pathNode.cameFromNodeIndex = -1;

                pathNodeArray[pathNode.index] = pathNode;
            }
        }
        return(pathNodeArray);
    }
Esempio n. 2
0
 public GridNode(JUCLGrid <GridNode> grid, int x, int y)
 {
     this.grid  = grid;
     this.x     = x;
     this.y     = y;
     isWalkable = true;
 }
Esempio n. 3
0
 private void Start()
 {
     //Create pathfinding grid
     pathfindingGrid = new JUCLGrid <GridNode>(gridSize.x, gridSize.y, cellSize, Vector3.zero, (JUCLGrid <GridNode> Grid, int x, int y) => new GridNode(pathfindingGrid, x, y), debugMode, debugTextHeight);
     pathfindingGrid.GetGridObject(2, 0).SetIsWalkable(false);
 }