예제 #1
0
 public void Init(Vector2 coords, CellKind kind, ParkingKind parkingKind, GameObject gameObjectsContainer)
 {
     this.coords               = coords;
     this.kind                 = kind;
     this.parkingKind          = parkingKind;
     this.gameObjectsContainer = gameObjectsContainer;
 }
예제 #2
0
    void InitCells(Dictionary <Vector2, Cell> cells)
    {
        ArrayList fireEngineSpots = new ArrayList();

        fireEngineSpots.Add(new Vector2(0, 1));
        fireEngineSpots.Add(new Vector2(0, 2));
        fireEngineSpots.Add(new Vector2(7, 0));
        fireEngineSpots.Add(new Vector2(8, 0));
        fireEngineSpots.Add(new Vector2(1, 7));
        fireEngineSpots.Add(new Vector2(2, 7));
        fireEngineSpots.Add(new Vector2(9, 5));
        fireEngineSpots.Add(new Vector2(9, 6));
        ArrayList ambulanceSpots = new ArrayList();

        ambulanceSpots.Add(new Vector2(0, 3));
        ambulanceSpots.Add(new Vector2(0, 4));
        ambulanceSpots.Add(new Vector2(5, 0));
        ambulanceSpots.Add(new Vector2(6, 0));
        ambulanceSpots.Add(new Vector2(3, 7));
        ambulanceSpots.Add(new Vector2(4, 7));
        ambulanceSpots.Add(new Vector2(9, 3));
        ambulanceSpots.Add(new Vector2(9, 4));

        for (int i = 0; i < cellsWide; i++)
        {
            for (int j = 0; j < cellsHigh; j++)
            {
                Vector2    coords  = new Vector2(i, j);
                GameObject newCell = Object.Instantiate(cellPrefab);
                GameObject newGameObjectContainer = Object.Instantiate(gameObjectsContainer);

                CellKind    kind        = IsOutdoor(coords) ? CellKind.OUTDOOR : CellKind.INDOOR;
                ParkingKind parkingKind = ParkingKind.NONE;
                foreach (Vector2 fireEngineSpot in fireEngineSpots)
                {
                    if (fireEngineSpot.Equals(coords))
                    {
                        fireEngineSpots.Remove(fireEngineSpot);
                        parkingKind = ParkingKind.FIRE_ENGINE;
                        break;
                    }
                }
                foreach (Vector2 ambulanceSpot in ambulanceSpots)
                {
                    if (ambulanceSpot.Equals(coords))
                    {
                        ambulanceSpots.Remove(ambulanceSpot);
                        parkingKind = ParkingKind.AMBULANCE;
                        break;
                    }
                }
                newCell.GetComponent <Cell>().Init(coords, kind, parkingKind, newGameObjectContainer);

                cells.Add(coords, newCell.GetComponent <Cell>());
                newCell.transform.SetParent(cellLayer.transform, false);
                newGameObjectContainer.transform.SetParent(gameObjectsLayer.transform, false);
            }
        }
    }