public override void InitGrid() { if (((RectTileGridBuilder)GridBuilder).GridShape != RectTileGridBuilder.Shape.Rectangle) { Debug.LogError("Shape must be Rectangle"); return; } if ((GridBuilder.Dimensions.X % 2 != 1) && (GridBuilder.Dimensions.Y % 2 != 1)) { Debug.LogError("Both dimensions must be even!"); return; } foreach (var point in Grid) { var color = point.GetColor3() == 0 ? floorColor : wallColor; Grid[point].Color = color; } foreach (var point in MazeAlgorithms.GenerateMazeWalls((RectGrid <TileCell>)Grid)) { Grid[point].Color = floorColor; } }
public override void InitGrid() { if (((PointyHexTileGridBuilder)GridBuilder).GridShape != PointyHexTileGridBuilder.Shape.Hexagon) { Debug.LogError("Shape must be Hexagon"); return; } if (GridBuilder.Size % 2 != 0) { Debug.LogError("The size must be even!"); return; } foreach (var point in Grid) { int color = point.GetColor2_4(); ((SpriteCell)Grid[point]).FrameIndex = color; } foreach (var point in MazeAlgorithms.GenerateMazeWalls <TileCell>((PointyHexGrid <TileCell>)Grid)) { ((SpriteCell)Grid[point]).FrameIndex = 0; } }
public override void InitGrid() { var grid = (FlatTriGrid <TileCell>)Grid; var edgeGrid = grid.MakeEdgeGrid <MazeCell>(); var edgeMap = new PointyRhombMap(cellDimensions) .WithWindow(ExampleUtils.ScreenRect) .AlignMiddleCenter(edgeGrid) .To3DXY(); foreach (var point in edgeGrid) { MazeCell cell = GridBuilderUtils.Instantiate(edgePrefab); cell.transform.parent = transform; cell.transform.localScale = Vector3.one; cell.transform.localPosition = edgeMap[point]; cell.SetOrientation(point.I, false); cell.name = "M"; edgeGrid[point] = cell; } foreach (var point in MazeAlgorithms.GenerateMazeWalls(grid)) { if (edgeGrid[point] != null) { edgeGrid[point].SetOrientation(point.I, true); } } }