Exemple #1
0
        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>());
        }
Exemple #2
0
        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);
     }
 }