Files
XMen/Assets/Scripts/UI/ConPanel.cs
2025-07-10 14:49:53 +08:00

88 lines
2.0 KiB
C#

using Common;
using DragonLi.Core;
using Mirror;
using Mirror.Discovery;
using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using XUI;
public class ConPanel : MonoBehaviour
{
// public NetworkManager manager;
// public InputField field;
public Common.State PanelState;
public Transform Page2;
public GameObject IPBtn;
public List<IPBtn> IPBtns;
public bool IsInit = false;
public static void Show()
{
WorldUIManager.Ins.Cover("UI/ConPanel", false);
}
public void Start()
{
for (int i = 0; i < 50; i++)
{
IPBtn btn = Instantiate(IPBtn, Page2).GetComponent<IPBtn>();
btn.gameObject.SetActive(false);
IPBtns.Add(btn);
}
IsInit = true;
}
public void Update()
{
if (IsInit && MRNetworkManager.Ins.NeedFresh > 0)
{
MRNetworkManager.Ins.NeedFresh--;
FreshServers();
}
}
public void OnClickHost()
{
WorldUIManager.Ins.Back();
MRNetworkManager.Ins.CreateAndJoinRoom();
MRNetworkManager.Ins.networkDiscovery.AdvertiseServer();
}
public void OnClickFindServer()
{
MRNetworkManager.Ins.discoveredServers.Clear();
MRNetworkManager.Ins.networkDiscovery.StartDiscovery();
PanelState.StateChange(1);
}
public void FreshServers()
{
for (int j = 0; j < IPBtns.Count; j++)
{
IPBtns[j].gameObject.SetActive(false);
}
int i = 0;
foreach (ServerResponse info in MRNetworkManager.Ins.discoveredServers.Values)
{
IPBtns[i].Init(info.EndPoint.Address.ToString());
IPBtns[i].gameObject.SetActive(true);
i++;
}
}
public void OnClickServer()
{
WorldUIManager.Ins.Back();
MRNetworkManager.Ins.CreateRoom();
}
}