Example #1
0
 private void SetTiles()
 {
     if (m_Tiles == null)
     {
         m_Tiles = new Vector3IntTileBaseDictionary();
     }
     if (m_Tiles.Count == 0)
     {
         CreateTiles();
     }
 }
        /// <summary>
        ///
        /// </summary>
        public void CreateTiles()
        {
            if (m_Tiles == null)
            {
                m_Tiles = new Vector3IntTileBaseDictionary();
            }

            for (int x = 0; x < m_Width; x++)
            {
                for (int y = 0; y < m_Length; y++)
                {
                    Vector3Int position = new Vector3Int(x, y, 0);
                    TileBase   tile     = null;
                    switch (m_TileShape)
                    {
                    case eTileShape.Cube:
                        tile = DemoCubeTilemap.TileFactory.CreateCubeTileAt(position) as TileBase;
                        break;

                    case eTileShape.SquareSprite:
                        tile = null;
                        break;

                    case eTileShape.Hex:
                        tile = DemoHexTilemap.TileFactory.CreateHexTileAt(position);
                        break;

                    case eTileShape.HexSprite:
                        tile = null;
                        break;

                    case eTileShape.UnityTilemap:
                        tile = null;
                        break;

                    default:
                        tile = null;
                        break;
                    }

                    if (m_Tiles.ContainsKey(position) == false)
                    {
                        m_Tiles.Add(position, tile);
                    }
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        public void ClearAllTiles()
        {
            if (m_Tiles.Count == 0)
            {
                return;
            }
            if (m_Tiles == null)
            {
                return;
            }

            foreach (KeyValuePair <Vector3Int, TileBase> kv in m_Tiles)
            {
                if (kv.Value != null)
                {
                    DestroyImmediate(kv.Value.gameObject);
                }
            }
            m_Tiles.Clear();
            m_Tiles = null;
        }