Esempio n. 1
0
 // Update is called once per frame
 void Update()
 {
     if (UtilsC.CheckPeerType(NetworkPeerType.Disconnected) && UtilsC.IsHostsExists())
     {
         hostData = MasterServer.PollHostList();
     }
 }
Esempio n. 2
0
 void Update()
 {
     // 当本客户端没有连接并且有主机地址存在的时候,拉取服务器列表
     if (UtilsC.CheckPeerType(NetworkPeerType.Disconnected) && UtilsC.IsHostsExists())
     {
         hostData = MasterServer.PollHostList();
     }
 }
Esempio n. 3
0
    // 进入比赛房间
    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();
    }