网上演练贵港万达广场(人员密集)
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

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);
}
}
}
}
}
}