コード例 #1
0
        /// <summary>
        /// Occupies the area
        /// </summary>
        /// <param name="gridPos"></param>
        /// <param name="size"></param>
        public void Occupy(Vector2Int gridPos, Vector2Int size)
        {
            m_IsOccupied = true;

            if (m_SpawnedTile != null)
            {
                m_SpawnedTile.SetState(PlacementTileState.Filled);
            }
        }
コード例 #2
0
        /// <summary>
        /// Instantiates Tile Objects to visualise the grid and sets up the <see cref="m_AvailableCells" />
        /// </summary>
        protected void SetUpGrid()
        {
            PlacementTile tileToUse = placementTilePrefab;

            if (tileToUse != null)
            {
                // Create a container that will hold the cells.
                var tilesParent = new GameObject("Container");
                tilesParent.transform.parent        = transform;
                tilesParent.transform.localPosition = Vector3.zero;
                tilesParent.transform.localRotation = Quaternion.identity;
                m_Tiles = new PlacementTile[dimensions.x, dimensions.y];

                for (int y = 0; y < dimensions.y; y++)
                {
                    for (int x = 0; x < dimensions.x; x++)
                    {
                        Vector3 targetPos = GridToWorld(new Vector2Int(x, y), new Vector2Int(1, 1));
                        targetPos.y += 0.01f;
                        PlacementTile newTile = Instantiate(tileToUse);
                        newTile.transform.parent        = tilesParent.transform;
                        newTile.transform.position      = targetPos;
                        newTile.transform.localRotation = Quaternion.identity;

                        m_Tiles[x, y] = newTile;
                        newTile.SetState(PlacementTileState.Empty);
                    }
                }
            }
        }