private void FillGridData(int x, int y, int[,] data, int color) { if (data != null) { gridData.Fill(x, y, data, color); } }
public void GridPathfinding() { ushort width = 5; ushort height = 5; byte[] raw = new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 128, 128, 128, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; var data00 = new GridData(); data00.Fill(width, height, raw); var data22 = new GridData(); data22.Fill(width, height, raw, 2, 2); var rect4 = new RectGrid4Dir(data00); var rect4_offset = new RectGrid4Dir(data22); var rect8 = new RectGrid8Dir(data00); var axialHex = new AxialHexGrid(data00); var astar = new AStarPathfinding(); Debug.Log(nameof(rect4)); rect4.FindPath(astar, 1, 0, 2, 4); CheckPath(astar.FormattedPath(), "path:2,4-2,3-1,3-0,3-0,2-0,1-0,0-1,0"); Debug.Log(nameof(rect4_offset)); rect4_offset.FindPath(astar, -1, -2, 0, 2); CheckPath(astar.FormattedPath(), "path:2,4-2,3-1,3-0,3-0,2-0,1-0,0-1,0"); Debug.Log(nameof(rect8)); rect8.FindPath(astar, 1, 0, 2, 4); CheckPath(astar.FormattedPath(), "path:2,4-1,3-0,2-0,1-1,0"); Debug.Log(nameof(axialHex)); axialHex.FindPath(astar, 1, 0, 2, 4); CheckPath(astar.FormattedPath(), "path:2,4-1,3-0,2-0,1-1,1-0,0-1,0"); }