// Initialize from a card piece
 public static GamePieceObject InitializeFromCardPiece(CardPiece cardPiece, Transform parentTransform, Player player)
 {
     if (cardPiece.cardType == CardType.Unit)
     {
         GamePieceObject newUnitObject = Instantiate(GetUnitPrefab(), parentTransform);
         Unit            newUnit       = GamePiece.CreatePiece <Unit>(cardPiece, player);
         newUnitObject.SetPiece(newUnit);
         return(newUnitObject);
     }
     else if (cardPiece.cardType == CardType.Building)
     {
         GamePieceObject newBuildingObject = Instantiate(GetUnitPrefab(), parentTransform);
         Building        newBuilding       = GamePiece.CreatePiece <Building>(cardPiece, player);
         newBuildingObject.SetPiece(newBuilding);
         return(newBuildingObject);
     }
     else
     {
         return(null);
     }
 }
    // Initialize from a game piece
    public static GamePieceObject InitializeFromGamePiece(GamePiece piece, Transform parentTransform, int playerId)
    {
        CardPiece cardPiece = piece.GetCard();

        if (cardPiece.cardType == CardType.Unit)
        {
            GamePieceObject newUnitObject = Instantiate(GetUnitPrefab(), parentTransform);
            newUnitObject.SetPiece(piece);
            //piece.gamePieceObject = newUnitObject;
            return(newUnitObject);
        }
        else if (cardPiece.cardType == CardType.Building)
        {
            GamePieceObject newBuildingObject = Instantiate(GetUnitPrefab(), parentTransform);
            newBuildingObject.SetPiece(piece);
            //piece.gamePieceObject = newBuildingObject;
            return(newBuildingObject);
        }
        else
        {
            return(null);
        }
    }