using UnityEngine;
|
using System.Collections.Generic;
|
using UnityEngine.UI;
|
|
public class ServerListWin : UIBase
|
{
|
// 组件引用
|
[SerializeField] CyclicScroll m_ServerGroupScroll;
|
[SerializeField] CyclicScroll m_ServerScroll;
|
[SerializeField] Button m_Close;
|
|
// 生命周期
|
protected override void Awake()
|
{
|
base.Awake();
|
// 初始化组件引用
|
}
|
|
protected override void Start()
|
{
|
base.Start();
|
// 初始化数据
|
}
|
|
protected override void InitComponent()
|
{
|
base.InitComponent();
|
m_Close.AddListener(CloseWindow);
|
}
|
|
// UI事件
|
protected override void OnOpen()
|
{
|
base.OnOpen();
|
// 窗口打开时的逻辑
|
ServerListCenter.Instance.serverGroupSelectEvent += RefreshServerList;
|
m_ServerGroupScroll.Init(ServerListCenter.Instance.GetAllServerGroup());
|
RefreshServerList();
|
}
|
|
protected override void OnClose()
|
{
|
base.OnClose();
|
// 窗口关闭时的逻辑
|
ServerListCenter.Instance.serverGroupSelectEvent -= RefreshServerList;
|
}
|
|
public override void Refresh()
|
{
|
base.Refresh();
|
// 刷新UI显示
|
}
|
|
|
private void RefreshServerList()
|
{
|
ServerGroup serverGroup = null;
|
if (ServerListCenter.Instance.TryGetServerGroup(ServerListCenter.Instance.currentServerGroup, out serverGroup))
|
{
|
if (serverGroup.group_list != null)
|
{
|
var groupDatas = new List<ServerDataCouple>();
|
var serverDataList = new List<ServerData>(serverGroup.group_list);
|
|
for (int i = serverDataList.Count - 1; i >= 0; i--)
|
{
|
if (VersionConfig.Get().isBanShu)
|
{
|
if (serverDataList[i].region_flag != 8000)
|
{
|
serverDataList.RemoveAt(i);
|
}
|
}
|
else
|
{
|
if (serverDataList[i].region_flag == 8000)
|
{
|
serverDataList.RemoveAt(i);
|
}
|
}
|
}
|
|
serverDataList.Sort(ServerData.Compare);
|
var max = serverDataList.Count;
|
for (int i = 0; i < max; i++, i++)
|
{
|
if (i + 1 < max)
|
{
|
groupDatas.Add(new ServerDataCouple(serverDataList[i], serverDataList[i + 1]));
|
}
|
else
|
{
|
groupDatas.Add(new ServerDataCouple(serverDataList[i]));
|
}
|
}
|
|
m_ServerScroll.Init(groupDatas);
|
}
|
else
|
{
|
m_ServerScroll.Init<ServerDataCouple>(null);
|
}
|
|
}
|
}
|
}
|