public virtual void Init(DungeonPlayground dungeonPlayground)
        {
            RemoveAll();

            GetComponent <GridLayoutGroup>().constraintCount = dungeonPlayground.Width;

            _grid = new T[dungeonPlayground.Width, dungeonPlayground.Height];

            for (int i = 0; i < dungeonPlayground.Width; i++)
            {
                for (int j = 0; j < dungeonPlayground.Height; j++)
                {
                    GameObject newGridTile = Instantiate(_tile, transform);
                    _grid[i, j] = newGridTile.GetComponent <T>();
                }
            }
        }
        public override void Init(DungeonPlayground dungeonPlayground)
        {
            base.Init(dungeonPlayground);

            for (int i = 0; i < _grid.GetLength(0); i++)
            {
                for (int j = 0; j < _grid.GetLength(1); j++)
                {
                    GridTile currentGridTile = _grid[i, j];
                    currentGridTile.SetGridPosition(new Vector2(i, j));
                    if (dungeonPlayground.Grid[i, j] == TileTypes.Floor)
                    {
                        currentGridTile.GetComponent <Image>().color = Color.gray;
                    }
                    else if (dungeonPlayground.Grid[i, j] == TileTypes.Wall)
                    {
                        currentGridTile.GetComponent <Image>().color = Color.black;
                    }
                }
            }
        }