using AX.NetworkSystem; using System.Collections; using System.Collections.Generic; using UnityEngine; using AX.Network.Protocols; using System; using UnityEngine.SceneManagement; using AX.Serialization; using UnityEngine.UI; public class ROOM_ENTER_SYNC : NetworkMessageBehaviour { protected override void Execute(BinaryMessage message) { var info = message.Body.Deserialize(); if (info.UserData.UserInfo.Id == CurrentUserInfo.mySelf.Id) { NetworkManager.Default.SendAsync("LOBBY_LEAVE_SYNC", info); } else { if (SceneManager.GetActiveScene().name != "Lobby") { CurrentUserInfo.room.UserList.Add(info.UserData); //添加后来进入房间UI if (GetComponent()) { List newenter = new List(); newenter.Add(info.UserData); GetComponent().CreatRoleItem(newenter); GetComponent().ShowNewRolePanel(info.UserData); //更新房间人数显示 var roomUserNum = transform.parent.Find("RoomInfoPanel/Panel/RoonNum/Text"); roomUserNum.GetComponent().text = CurrentUserInfo.room.UserList.Count.ToString() + "/32"; } #region 进入房间时添加进入频道提示消息 ChatChannel channel = new ChatChannel() { ID = 1, RoomID = info.RoomId, Users = new List(), EnterUserId = info.UserData.UserInfo.Id }; ChatManager.Instance.JoinPublicChannel(channel); #endregion } else//有人进入房间时 查找大厅中匹配的房间,将该用户加入到房间用户列表中 { Transform RoomParentTrans = transform.Find("RoomParent/RoomList/Body/Viewport/Content"); foreach (Transform t in RoomParentTrans) { RoomManager r = t.GetComponent(); if (r.MyRoom.Id == info.RoomId) { r.MyRoom.UserList.Add(info.UserData); } } } } } }