/// <summary>
    /// 被TCP数据处理器调用
    /// 响应服务器召唤英雄的请求
    /// </summary>
    public void ResponseAddCharacterCard(SummonCharacterData detailData)
    {
        string cardUUID = detailData.cardUUID;
        CardInfo cardInfo = detailData.cardInfo;
        int operatePlayerPosition = detailData.operatePlayerPosition;
        GameSide operateSide;
        if (operatePlayerPosition == this.playerRoomData.allocPosition)
        { operateSide = GameSide.Our; }
        else
        { operateSide = GameSide.Enemy; }

        //添加数据
        CharacterCard character = CardManager.Instance.GetCharacterById(cardInfo.cardUUID, cardInfo.cardId, cardInfo.cardLevel, cardInfo.health, cardInfo.energy, cardInfo.attack, cardInfo.speed, cardInfo.cardOwnSkill);
        character.SetCardUUID(cardUUID);
        gameCardCollection.AddCharacterCard(character, operateSide);

        //添加场景实体
        gameSceneManager.CreateGameCharacterCard(operateSide, character);
    }
    /// <summary>
    /// 向服务器请求添加英雄卡到场上
    /// </summary>
    public void RequestAddCharacterCard(CharacterCard character, GameSide side, string cardUUID)
    {
        //发送到远程服务器
        SummonCharacterData detailData = new SummonCharacterData();
        detailData.cardInfo = character.GetCardInfo();//获取卡片信息
        detailData.cardUUID = cardUUID;
        detailData.operatePlayerPosition = playerRoomData.allocPosition;
        detailData.operatePlayerUid = Global.Instance.playerInfo.uid;
        detailData.operatePlayerUUID = Global.Instance.playerInfo.UUID;

        GameData data = new GameData();
        data.operateCode = OperateCode.SummonCharacter;
        data.roomID = playerRoomData.roomID;
        data.operateData = JsonCoding<SummonCharacterData>.encode(detailData);

        GameClient.Instance.SendToServer(data);
    }