// Start is called before the first frame update
    void Start()
    {
        mpReceivePlayer = Class_NetworkClient.GetInst().mUserInfoes.Find(u => u.mUserName != Class_NetworkClient.GetInst().mMyUserInfo.mUserName);

        mpPlayerName.text = mpReceivePlayer.mUserName;
        MaxHp             = mpReceivePlayer.mHP;
    }
Beispiel #2
0
    // Start is called before the first frame update
    void Start()
    {
        tFirstUser = Class_NetworkClient.GetInst().mUserInfoes.Find(f => f.mClearCount > 0);
        mpFirstUserInfoTxt.text = "1위 : <color='red'>" + tFirstUser.mUserName + "</color>\n직업 : <color='red'>" + tFirstUser.mOccupation + "</color>\n클리어 횟수 : <color='red'>" + tFirstUser.mClearCount + "</color>";

        StartCoroutine("UpdateFromNetwork");
    }
    IEnumerator UpdateFromNetwork()
    {
        while (true)
        {
            byte[] tBuffer   = new byte[1024];
            int    tRecvSize = Class_NetworkClient.GetInst().GetFromQueue(ref tBuffer, tBuffer.Length);

            if (tRecvSize > 0)
            {
                PROTOCOL tProtocolID = 0;
                tProtocolID = (PROTOCOL)tBuffer[0];

                switch (tProtocolID)
                {
                case PROTOCOL.ACK_CREATE_ROOM:
                {
                    Debug.Log("ACK_CREATE_ROOM");
                    int    tRoomId         = tBuffer[1];
                    int    tMasterIdLength = tBuffer[2];
                    int    tOffset         = 3;
                    string tMasterId       = Encoding.UTF8.GetString(tBuffer, tOffset, tMasterIdLength);
                    int    tRoomNameLength = tBuffer[tMasterIdLength + tOffset];
                    tOffset = tOffset + tMasterIdLength + 1;
                    string tRoomName = Encoding.UTF8.GetString(tBuffer, tOffset, tRoomNameLength);

                    Class_NetworkClient.GetInst().mRoomId     = tRoomId;
                    Class_NetworkClient.GetInst().mRoomMaster = tMasterId;
                    Class_NetworkClient.GetInst().mRoomName   = tRoomName;

                    Debug.Log("mRoomMaster : " + Class_NetworkClient.GetInst().mRoomMaster);
                    Debug.Log("mRoomName : " + Class_NetworkClient.GetInst().mRoomName);

                    SceneManager.LoadScene("RoomScene");
                    SceneManager.LoadScene("AllPlayScene", LoadSceneMode.Additive);
                }
                break;

                case PROTOCOL.ACK_JOIN_ROOM:
                {
                    Debug.Log("ACK_JOIN_ROOM");

                    int    tRoomId         = tBuffer[1];
                    int    tUserCount      = tBuffer[2];
                    int    tMasterIdLength = tBuffer[3];
                    int    tOffset         = 4;
                    string tMasterId       = Encoding.UTF8.GetString(tBuffer, tOffset, tMasterIdLength);
                    tOffset = tOffset + tMasterIdLength;
                    int tRoomNameLength = tBuffer[tOffset];
                    tOffset += 1;
                    string tRoomName = Encoding.UTF8.GetString(tBuffer, tOffset, tRoomNameLength);



                    Debug.Log("방장 Name : " + tMasterId);
                    Debug.Log("방 Name : " + tRoomName);

                    //=====
                    int tInitPos = tOffset + tRoomNameLength;
                    tOffset = tInitPos;
                    for (int ti = 0; ti < tUserCount; ti++)
                    {
                        int tLength = (int)tBuffer[tOffset];
                        tOffset = tOffset + 1;

                        string tUserName = Encoding.UTF8.GetString(tBuffer, tOffset, tLength);
                        tOffset = tOffset + tLength;

                        Debug.Log("UserName_" + ti + " : " + tUserName);

                        if (tUserName != Class_NetworkClient.GetInst().mMyUserInfo.mUserName)
                        {
                            Class_Singleton_User tUser = new Class_Singleton_User();
                            tUser.mUserName = tUserName;

                            Class_NetworkClient.GetInst().mUserInfoes.Add(tUser);
                        }
                    }
                    //=====

                    Class_NetworkClient.GetInst().mRoomId     = tRoomId;
                    Class_NetworkClient.GetInst().mRoomMaster = tMasterId;
                    Class_NetworkClient.GetInst().mRoomName   = tRoomName;

                    SceneManager.LoadScene("RoomScene");
                    SceneManager.LoadScene("AllPlayScene", LoadSceneMode.Additive);
                }
                break;

                case PROTOCOL.ACK_JOIN_ROOM_FAIL:
                {
                    Debug.Log("Join Room Fail..");

                    mpTxt.gameObject.SetActive(true);

                    mpTxt.text = "<color='green'>방 입장에 실패했어요 ..ㅠㅠ</color>";
                }
                break;

                case PROTOCOL.ACK_QUIT_GAME:
                {
                            #if UNITY_EDITOR
                    UnityEditor.EditorApplication.isPlaying = false;
                            #else
                    Application.Quit();
                            #endif
                }
                break;
                }
            }
            yield return(new WaitForSeconds(0.05f));
        }
    }
Beispiel #4
0
    IEnumerator UpdateFromNetwork()
    {
        while (true)
        {
            byte[] tBuffer   = new byte[1024];
            int    tRecvSize = Class_NetworkClient.GetInst().GetFromQueue(ref tBuffer, tBuffer.Length);

            if (tRecvSize > 0)
            {
                PROTOCOL tProtocolID = 0;
                tProtocolID = (PROTOCOL)tBuffer[0];

                switch (tProtocolID)
                {
                case PROTOCOL.ACK_START_GAME:
                {
                    Debug.Log("ACK_START_GAME");

                    int tUserKey = tBuffer[1];

                    //방장 차례
                    if (tUserKey == Class_NetworkClient.GetInst().mMyUserInfo.mUserKey)
                    {
                        Class_NetworkClient.GetInst().CleanTurn();
                        Class_NetworkClient.GetInst().mMyUserInfo.mMyTurn = true;
                    }
                    else
                    {
                        Class_NetworkClient.GetInst().CleanTurn();
                    }
                }
                break;

                case PROTOCOL.ACK_TURN_OVER:
                {
                    Debug.Log("ACK_TURN_OVER");

                    int tUserKey = tBuffer[1];

                    if (tUserKey == Class_NetworkClient.GetInst().mMyUserInfo.mUserKey)
                    {
                        Class_NetworkClient.GetInst().CleanTurn();
                    }
                    else
                    {
                        Class_NetworkClient.GetInst().CleanTurn();
                        Class_NetworkClient.GetInst().mMyUserInfo.mMyTurn = true;

                        switch (mStage)
                        {
                        case STAGE.Stage_1:
                            if (Class_NetworkClient.GetInst().mRoomMaster != Class_NetworkClient.GetInst().mMyUserInfo.mUserName)
                            {
                                if (mpItemSpawn.mSpawn == false)
                                {
                                    mpItemSpawn.StartSpawnItem(true);
                                }
                            }
                            break;

                        case STAGE.Stage_2:
                        {
                            if (mpEnemySpawn.mSpawn == false)
                            {
                                mpEnemySpawn.SpawnEnemy();
                            }
                        }
                        break;

                        case STAGE.Stage_3:
                        {
                            if (mpMazeSpawn.mSpawn == false)
                            {
                                mpMazeSpawn.SpawnMaze();
                            }
                        }
                        break;
                        }
                    }
                }
                break;

                case PROTOCOL.ACK_GAME_CLEAR:
                {
                    Debug.Log("ACK_GAME_CLEAR");

                    //서버에서 받은 데이터 입력
                    Class_Singleton_User tFirstUser = new Class_Singleton_User();

                    tFirstUser.mClearCount = tBuffer[1];
                    int tHPLength = tBuffer[2];

                    int tOffset = 3;
                    tFirstUser.mHP = BitConverter.ToInt32(tBuffer, tOffset);
                    tOffset       += sizeof(int);

                    int tAPLength = tBuffer[tOffset];
                    tOffset       += 1;
                    tFirstUser.mAP = BitConverter.ToInt32(tBuffer, tOffset);
                    tOffset       += sizeof(int);

                    int tNameLength = tBuffer[tOffset];
                    tOffset += 1;
                    tFirstUser.mUserName = Encoding.UTF8.GetString(tBuffer, tOffset, tNameLength);

                    tOffset += tNameLength;
                    int tOccupationLength = tBuffer[tOffset];
                    tOffset += 1;
                    tFirstUser.mOccupation = Encoding.UTF8.GetString(tBuffer, tOffset, tOccupationLength);

                    Class_NetworkClient.GetInst().mUserInfoes.Add(tFirstUser);
                    //서버에서 받은 데이터 입력

                    SceneManager.LoadScene("ClearScene");
                    SceneManager.LoadScene("AllPlayScene", LoadSceneMode.Additive);
                }
                break;

                case PROTOCOL.ACK_GAME_FAIL:
                {
                    Debug.Log("ACK_GAME_FAIL");

                    SceneManager.LoadScene("FailScene");
                    SceneManager.LoadScene("AllPlayScene", LoadSceneMode.Additive);
                }
                break;

                case PROTOCOL.ACK_QUIT_GAME:
                {
                            #if UNITY_EDITOR
                    UnityEditor.EditorApplication.isPlaying = false;
                            #else
                    Application.Quit();
                            #endif
                }
                break;
                }
            }
            yield return(new WaitForSeconds(0.05f));
        }
    }
Beispiel #5
0
    IEnumerator UpdateFromNetwork()
    {
        while (true)
        {
            byte[] tBuffer   = new byte[1024];
            int    tRecvSize = Class_NetworkClient.GetInst().GetFromQueue(ref tBuffer, tBuffer.Length);

            if (tRecvSize > 0)
            {
                PROTOCOL tProtocolID = 0;
                tProtocolID = (PROTOCOL)tBuffer[0];

                switch (tProtocolID)
                {
                case PROTOCOL.ACK_JOIN_ROOM:
                {
                    Debug.Log("ACK_JOIN_ROOM");

                    int tUserCount      = tBuffer[2];
                    int tMasterIdLength = tBuffer[3];
                    int tOffset         = 4;
                    tOffset += tMasterIdLength;
                    int tRoomNameLength = tBuffer[tOffset];
                    tOffset += 1;

                    //=====
                    int tInitPos = tOffset + tRoomNameLength;
                    tOffset = tInitPos;
                    for (int ti = 0; ti < tUserCount; ti++)
                    {
                        int tLength = (int)tBuffer[tOffset];
                        tOffset = tOffset + 1;

                        string tUserName = Encoding.UTF8.GetString(tBuffer, tOffset, tLength);
                        tOffset = tOffset + tLength;

                        Debug.Log("UserName_" + ti + " : " + tUserName);

                        if (tUserName != Class_NetworkClient.GetInst().mMyUserInfo.mUserName)
                        {
                            Class_Singleton_User tUser = new Class_Singleton_User();
                            tUser.mUserName = tUserName;

                            Class_NetworkClient.GetInst().mUserInfoes.Add(tUser);
                        }

                        mGuestImg.gameObject.SetActive(true);
                    }
                }
                break;

                case PROTOCOL.ACK_READY:
                {
                    Debug.Log("ACK_READY");
                }
                break;

                case PROTOCOL.ACK_ALL_READY:
                {
                    mBeginPlayBtn.gameObject.SetActive(true);

                    Debug.Log("ACK_ALL_READY");
                }
                break;

                case PROTOCOL.ACK_BEGIN_PLAY:
                {
                    Debug.Log("ACK_BEGIN_PLAY");

                    //송신받은 게스트/방장의 정보를 상대유저정보에 입력
                    foreach (var o in Class_NetworkClient.GetInst().mUserInfoes)
                    {
                        if (o.mUserName != Class_NetworkClient.GetInst().mMyUserInfo.mUserName)
                        {
                            o.mUserKey = tBuffer[1];
                            int tHPLength = tBuffer[2];
                            int tOffset   = 3;
                            o.mHP    = BitConverter.ToInt32(tBuffer, tOffset);
                            tOffset += sizeof(int);
                            int tAPLength = tBuffer[tOffset];
                            tOffset += 1;
                            o.mAP    = BitConverter.ToInt32(tBuffer, tOffset);
                            tOffset += sizeof(int);
                            int tOccupationLength = tBuffer[tOffset];
                            tOffset      += 1;
                            o.mOccupation = Encoding.UTF8.GetString(tBuffer, tOffset, tOccupationLength);
                        }
                    }

                    SceneManager.LoadScene("MapScene");
                    SceneManager.LoadScene("AllPlayScene", LoadSceneMode.Additive);
                }
                break;

                case PROTOCOL.ACK_QUIT_GAME:
                {
                            #if UNITY_EDITOR
                    UnityEditor.EditorApplication.isPlaying = false;
                            #else
                    Application.Quit();
                            #endif
                }
                break;
                }
            }
            yield return(new WaitForSeconds(0.05f));
        }
    }