// Update is called once per frame void Update() { if (UtilsC.CheckPeerType(NetworkPeerType.Disconnected) && UtilsC.IsHostsExists()) { hostData = MasterServer.PollHostList(); } }
void Update() { // 当本客户端没有连接并且有主机地址存在的时候,拉取服务器列表 if (UtilsC.CheckPeerType(NetworkPeerType.Disconnected) && UtilsC.IsHostsExists()) { hostData = MasterServer.PollHostList(); } }
// 进入比赛房间 void FindGame() { GUILayout.BeginArea(new Rect(Screen.width / 2 - 300, Screen.height / 2 - 200, 600, 400)); GUI.Box(new Rect(0, 20, 600, 400), ""); GUILayout.Label("Find Game Servers"); GUILayout.BeginArea(new Rect(0, 30, 595, 200)); GUI.Box(new Rect(5, 0, 590, 200), "", GUI.skin.FindStyle("Box")); scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(575), GUILayout.Height(200)); if (UtilsC.IsHostsExists()) { foreach (HostData element in networkConnection.hostData) { string name = " [" + element.gameName + " " + element.connectedPlayers + " / " + element.playerLimit + "] "; string hostInfo = ""; string gameComment = " [" + element.comment + "] "; foreach (string host in element.ip) { hostInfo = hostInfo + host + ":" + element.port + " "; } hostInfo = " [" + hostInfo + "] "; GUILayout.BeginHorizontal(); GUILayout.Label(name + gameComment + hostInfo + (element.passwordProtected ? "Private " : "Public ").ToString(), GUI.skin.FindStyle("Lable1")); GUILayout.Space(100); if (GUILayout.Button("Connect", GUI.skin.FindStyle("Button"), GUILayout.MaxWidth(55))) { string TEMP_IP = ""; foreach (string part in element.ip) { TEMP_IP = TEMP_IP + part; } networkConnection.connectToIP = TEMP_IP; networkConnection.connectPort = int.Parse(element.port.ToString()); networkConnection.Connect(); } GUILayout.Space(10); GUILayout.EndHorizontal(); } } else { GUILayout.Label(" There are no hosts registered"); } GUILayout.EndScrollView(); GUILayout.EndArea(); GUILayout.BeginArea(new Rect(0, 233, 480, 127)); GUI.Box(new Rect(5, 0, 450, 127), "", GUI.skin.FindStyle("Box")); GUILayout.BeginArea(new Rect(15, 5, 350, 250)); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.Label("IP: "); GUILayout.Label("Port: "); GUILayout.EndVertical(); GUILayout.BeginVertical(); networkConnection.connectToIP = GUILayout.TextField(networkConnection.connectToIP, GUILayout.MaxWidth(200)); networkConnection.connectPort = int.Parse(GUILayout.TextField(networkConnection.connectPort.ToString(), GUILayout.MaxWidth(200))); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); networkConnection.usePassword = GUILayout.Toggle(networkConnection.usePassword, "Use Password"); if (networkConnection.usePassword) { networkConnection.password = GUILayout.PasswordField(networkConnection.password, "*"[0], 15, GUILayout.Width(100)); } GUILayout.EndHorizontal(); GUILayout.EndArea(); GUILayout.EndArea(); GUILayout.BeginArea(new Rect(15, 340, 250, 30)); if (GUILayout.Button("Connect", GUI.skin.FindStyle("Button"), GUILayout.MaxWidth(130))) { networkConnection.Connect(); } GUILayout.EndArea(); GUILayout.BeginArea(new Rect(5, 365, 500, 30)); GUILayout.BeginHorizontal(); if (GUILayout.Button("Refresh List", GUILayout.MaxWidth(130))) { networkConnection.RefreshServerList(); } if (GUILayout.Button("Back To Menu", GUILayout.MaxWidth(130))) { menuState = "menublock"; } GUILayout.EndHorizontal(); GUILayout.EndArea(); GUILayout.EndArea(); }