You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.4 KiB
65 lines
2.4 KiB
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<EnterRoomPair>(); |
|
|
|
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<MainPanel>()) |
|
{ |
|
List<UserData> newenter = new List<UserData>(); |
|
newenter.Add(info.UserData); |
|
GetComponent<MainPanel>().CreatRoleItem(newenter); |
|
GetComponent<MainPanel>().ShowNewRolePanel(info.UserData); |
|
//更新房间人数显示 |
|
var roomUserNum = transform.parent.Find("RoomInfoPanel/Panel/RoonNum/Text"); |
|
roomUserNum.GetComponent<Text>().text = CurrentUserInfo.room.UserList.Count.ToString() + "/32"; |
|
} |
|
#region 进入房间时添加进入频道提示消息 |
|
ChatChannel channel = new ChatChannel() |
|
{ |
|
ID = 1, |
|
RoomID = info.RoomId, |
|
Users = new List<UserData>(), |
|
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<RoomManager>(); |
|
if (r.MyRoom.Id == info.RoomId) |
|
{ |
|
r.MyRoom.UserList.Add(info.UserData); |
|
} |
|
} |
|
} |
|
} |
|
|
|
} |
|
|
|
}
|
|
|