public override void RaiseBoardStartedSetupEvent()
    {
        base.RaiseBoardStartedSetupEvent();

        // Setup board pieces prefabs
        piecesDictionary = new Dictionary <System.Type, Match3BoardPiece>();
        for (int i = 0; i < prefabsPieces.Length; i++)
        {
            Match3BoardPiece boardPiece = prefabsPieces[i].GetComponent <Match3BoardPiece>();
            piecesDictionary.Add(boardPiece.GetType(), boardPiece);
        }

        if (autoGenerateRandom)
        {
            GenerateRandomBoard(Board.NumRows, Board.NumColumns);
        }
        else
        {
            LoadBoardSetupFromHierarchy();
        }
    }