//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); }
public GridNode(JUCLGrid <GridNode> grid, int x, int y) { this.grid = grid; this.x = x; this.y = y; isWalkable = true; }
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); }