예제 #1
0
    /// <summary>
    /// NetWorkManager以外からこの関数を呼ぶ必要はない。
    /// </summary>
    /// <param name="Msg">受け取った内容</param>
    public void Work(string Msg)
    {
        Debug.Log(Msg);

        //TCPで受け取った文字列をもとに処理をする。
        string[] MsgSplit  = Msg.Split('=');
        string   Parameter = MsgSplit[0];
        string   Content   = MsgSplit[1];

        switch (Parameter)
        {
        case "OpponentName":
            OpponentName.text = Content;
            break;

        case "Hand":
            FieldClear(HandField);
            foreach (string CardID in Content.Split(','))
            {
                AddCardInstance(int.Parse(CardID), HandField);
            }
            break;

        case "OpponentHand":
            FieldClear(OpponentHandField);
            foreach (string CardID in Content.Split(','))
            {
                AddCardInstance(int.Parse(CardID), OpponentHandField);
            }
            break;

        case "Turn":
            break;

        case "Error":
            switch (Content)
            {
            case "OverCapacity":
                Debug.Log("すでに2人が接続済みです。");
                netWorkManager.Disconnect();
                break;

            case "CardDoesntExist":
                Debug.Log("選択されたカードがサーバ上のリストに存在しません。");
                //手札データの再取得
                netWorkManager.Request(NetWorkManager.RequestParameter.DataRequest, "Hand");
                break;

            case "OpponentDisconnect":
                Debug.Log("相手の通信が切断されました。");
                break;

            case "UnExpectedError":
                Debug.LogError(Content);
                break;

            default:
                Debug.LogError(Content);
                break;
            }
            break;

        case "Finish":
            break;

        case "Start":
            break;

        case "DrawPile":
            foreach (string CardID in Content.Split(','))
            {
                sendButton.DrawCard.Enqueue(imgList[int.Parse(CardID)]);
            }
            break;

        default:
            Debug.LogError("予期しないパラメータを受信しました。");
            break;
        }
    }