private void BuildGrid1() { gridHolder = new GridHolder <int>(); var shape = gridShapeGraph.shape1Graph.GetShape(); gridHolder.SetGrid(new Grid1 <TCell>(shape)); var spaceMap = spaceMapGraph.GetMap(); var roundMap = MakeRoundMap <int>(); var gridMap = new GridMap <int>(spaceMap, roundMap); gridHolder.SetMap(gridMap); if (cellStorage != null) { if (!cellStorage.IsEmpty()) { RelinkCells(gridHolder.GetGrid <int>()); return; } } MakeCells(gridHolder.GetGrid <int>(), gridHolder.GetMap <int>()); }
private void InitGridBehaviours() { var gridBehaviours = GetGridBehaviours(); foreach (var gridBehaviour in gridBehaviours) { switch (gridShapeGraph.gridType) { case GridType.Grid1: gridBehaviour.__InitPrivateFields( this, gridHolder.GetGrid <int>(), gridHolder.GetMap <int>()); break; case GridType.Grid2: gridBehaviour.__InitPrivateFields( this, gridHolder.GetGrid <GridPoint2>(), gridHolder.GetMap <GridPoint2>()); break; case GridType.Grid3: gridBehaviour.__InitPrivateFields( this, gridHolder.GetGrid <GridPoint3>(), gridHolder.GetMap <GridPoint3>()); break; default: throw new ArgumentOutOfRangeException(); } if (gridBehaviour.enable) { gridBehaviour.InitGrid(); } } }
private void OnDrawGizmos() { if (Application.isPlaying == false) { return; } if (GridHolder.GetGrid() == null) { return; } foreach (Cell cell in GridHolder.GetGrid()) { if (cell.walkable) { Gizmos.color = Color.green; } else { Gizmos.color = Color.red; } Gizmos.DrawSphere(cell.AsBoardOrientedVector3Int(), 0.1f); } }