using System.Collections.Generic; using DragonLi.Core; using TMPro; using UnityEngine; using XUI; public class ConPanel : UIBehaviour { public Common.State PanelState; public Transform Page2; public GameObject IPBtn; public List IPBtns; public bool IsInit = false; public TextMeshProUGUI lastTxt; public TextMeshProUGUI tenTxt; public TextMeshProUGUI tipTxt; private int lastIndex = 0; private int tenIndex = 0; 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(); btn.gameObject.SetActive(false); IPBtns.Add(btn); } IsInit = true; lastTxt.text = 0.ToString(); tenTxt.text = 0.ToString(); tipTxt.text = ""; PanelState.StateChange(0); } public void Update() { if (IsInit && MRNetworkManager.Ins.NeedFresh > 0) { MRNetworkManager.Ins.NeedFresh--; FreshServers(); } } public void OnClickHost() { PanelState.StateChange(2); } public void CreateRoom() { WorldUIManager.Ins.Back(); MRNetworkManager.Ins.CreateAndJoinRoom(); MRNetworkManager.Ins.networkDiscovery.AdvertiseServer(); } public void OnClickFindServer() { MRNetworkManager.Ins.DiscoveredServers.Clear(); MRNetworkManager.Ins.DiscoveredServersList.Clear(); MRNetworkManager.Ins.networkDiscovery.StartDiscovery(); PanelState.StateChange(1); } public void FreshServers() { for (int j = 0; j < IPBtns.Count; j++) { IPBtns[j].gameObject.SetActive(false); } for (int i = 0; i < MRNetworkManager.Ins.DiscoveredServersList.Count; i++) { IPBtns[i].Init(i + 1, MRNetworkManager.Ins.DiscoveredServersList[i]); IPBtns[i].gameObject.SetActive(true); } } public void OnClickServer() { WorldUIManager.Ins.Back(); MRNetworkManager.Ins.CreateRoom(); } public void AddLastPlayer() { lastIndex += 1; if(lastIndex>9) lastIndex = 0; lastTxt.text = lastIndex.ToString(); } public void CutLastPlayer() { lastIndex -= 1; if(lastIndex < 0) lastIndex = 9; lastTxt.text = lastIndex.ToString(); } public void AddTenPlayer() { tenIndex += 1; if(tenIndex>9) tenIndex = 0; tenTxt.text = tenIndex.ToString(); } public void CutTenPlayer() { tenIndex -= 1; if(tenIndex < 0) tenIndex = 9; tenTxt.text = tenIndex.ToString(); } public void OnCreateRoomClick() { GameLocal.Ins.addPlayerIndex = (tenIndex * 10) + lastIndex; if (GameLocal.Ins.addPlayerIndex <= 1) { tipTxt.text = "至少两人开始游戏"; CoroutineTaskManager.Instance.WaitSecondTodo(() => { tipTxt.text = ""; }, 2f); return; } CreateRoom(); } }