Exemplo n.º 1
0
    public static void OnMsgCreateRoom(NetworkMessage netMsg)
    {
        Msg_CreateRoom msg = netMsg.ReadMessage <Msg_CreateRoom>();

        // 방 정보를 갖는 구조체를 만든다.
        MyNetManager.StructChatroom tmpRoom = new MyNetManager.StructChatroom();
        tmpRoom.roomName = msg.roomName;
        tmpRoom.roomNum  = MyNetManager.instance.m_roomCount++; // 방 번호 부여
        tmpRoom.member   = new List <int>();

        MyNetManager.instance.Chatroom.Add(tmpRoom); // 채팅방 목록에 방 추가
    }
Exemplo n.º 2
0
    // 채팅방 목록 최신화
    public static void OnMsgChatRoomInfoOnClient(NetworkMessage netMsg)
    {
        Msg_ChatRoomInfo InfoMsg = netMsg.ReadMessage <Msg_ChatRoomInfo>();

        // 채팅방 정보를 새로 담기위해 초기화시킨다.
        MyNetManager.instance.Chatroom.Clear();

        // 개설된 방 개수 만큼 정보를 받는다.
        for (int i = 0; i < InfoMsg.roomNum.Length; i++)
        {
            // 방 정보를 갖는 구조체를 만든다.
            MyNetManager.StructChatroom roomInfo = new MyNetManager.StructChatroom();
            roomInfo.roomName    = InfoMsg.roomName[i];
            roomInfo.roomNum     = InfoMsg.roomNum[i];
            roomInfo.memberCount = InfoMsg.memberCount[i]; // 현재 방에 접속한 멤버가 누구인지 까지는 필요하지 않고 인원수만 가져온다.

            MyNetManager.instance.Chatroom.Add(roomInfo);  // 채팅방 목록에 방 추가
        }


        /* 현재 개설된 방을 클라이언트 화면에 출력 */

        // 만들어진 방이 한개라도 있다면 모든 방 삭제
        /* (childCount가 자식오브젝트를 하나 지울때마다 한개씩 줄어들것같지만 그렇지 않다. 처음 값을 참조할때 자식오브젝트가 2개였다면 for문을 수행하는 동안에도 2개임. 값을 복사해서 그렇다고함.) */

        for (int i = 0; i < MyNetManager.instance.m_roomListContent.transform.childCount; i++)
        {
            Destroy(MyNetManager.instance.m_roomListContent.transform.GetChild(i).gameObject);
        }

        // 채팅방 버튼 생성
        for (int i = 0; i < MyNetManager.instance.Chatroom.Count; i++)
        {
            // 버튼 프리팹 생성
            Button newChatRoom = Instantiate(MyNetManager.instance.m_chatRoomBtnPrfb);

            Text newRoomName    = newChatRoom.transform.GetChild(0).GetComponent <Text>();
            Text newRoomNum     = newChatRoom.transform.GetChild(1).GetComponent <Text>();
            Text newMemberCount = newChatRoom.transform.GetChild(2).GetComponent <Text>();

            // 채팅방 이름, 번호, 인원수
            newRoomName.text    = MyNetManager.instance.Chatroom[i].roomName;
            newRoomNum.text     = "" + MyNetManager.instance.Chatroom[i].roomNum;
            newMemberCount.text = MyNetManager.instance.Chatroom[i].memberCount + " 명이 접속중";

            // 버튼 콜백함수 지정
            newChatRoom.onClick.AddListener(() => MyNetManager.instance.GotoRoom(int.Parse(newRoomNum.text)));

            newChatRoom.transform.SetParent(MyNetManager.instance.m_roomListContent.transform);
        }
    }