예제 #1
0
        void OnStatGUI()
        {
            GUILayout.Label("Time: " + NetworkTime.time);

            if (NetStatus.IsServer)
            {
                Utilities.GUIUtils.DrawHorizontalLine(1, 1, Color.black);
                GUILayout.Label("Num connections: " + NetworkServer.connections.Count);
                GUILayout.Label("Max num players: " + NetManager.maxNumPlayers);
                GUILayout.Label($"Dead body traffic per player: {DeadBody.DeadBodies.Sum(db => db.TrafficKbps)} Kb/s");
            }

            if (NetStatus.IsClientActive())
            {
                Utilities.GUIUtils.DrawHorizontalLine(1, 1, Color.black);
                GUILayout.Label("Ping: " + NetworkTime.rtt);
                GUILayout.Label("Ping send frequency: " + NetworkTime.PingFrequency);
                GUILayout.Label("Rtt sd: " + NetworkTime.rttSd);
                GUILayout.Label("Rtt var: " + NetworkTime.rttVar);
                GUILayout.Label("Server ip: " + NetworkClient.serverIp);
                GUILayout.Label("Time since last message: " + (Time.unscaledTime - NetworkClient.connection.lastMessageTime));
            }

            GUILayout.Label($"Num spawned network objects: {NetManager.NumSpawnedNetworkObjects}");
        }
예제 #2
0
        protected override void OnWindowGUI()
        {
            m_currentTabIndex = GUIUtils.TabsControl(m_currentTabIndex, m_tabNames);

            GUILayout.Space(20);

            if (DirectTabIndex == m_currentTabIndex)
            {
                GUILayout.Label("IP:");
                m_ipStr = GUILayout.TextField(m_ipStr, GUILayout.Width(200));

                GUILayout.Label("Port:");
                m_portStr = GUILayout.TextField(m_portStr, GUILayout.Width(100));
            }
            else if (LanTabIndex == m_currentTabIndex)
            {
                m_netDiscoveryHUD.width = (int)this.WindowSize.x - 30;
                m_netDiscoveryHUD.DisplayServers();
            }
            else if (InternetTabIndex == m_currentTabIndex)
            {
                int      availableWidth   = (int)this.WindowSize.x - 50;
                float[]  widthPercentages = new float[] { 0.35f, 0.25f, 0.4f };
                string[] columnNames      = new string[] { "Name", "Players", "IP" };

                // header
                GUILayout.BeginHorizontal();
                for (int i = 0; i < columnNames.Length; i++)
                {
                    GUILayout.Button(columnNames[i], GUILayout.Width(availableWidth * widthPercentages[i]));
                }
                GUILayout.EndHorizontal();

                _masterServerScrollViewPos = GUILayout.BeginScrollView(_masterServerScrollViewPos);

                foreach (ServerInfo info in _serversFromMasterServer)
                {
                    GUILayout.BeginHorizontal();

                    GUILayout.Label(info.Name, GUIUtils.CenteredLabelStyle, GUILayout.Width(availableWidth * widthPercentages[0]));

                    GUILayout.Label($"{info.NumPlayersOnline}/{info.MaxPlayers}", GUIUtils.CenteredLabelStyle, GUILayout.Width(availableWidth * widthPercentages[1]));

                    GUI.enabled = !NetStatus.IsClientActive();
                    if (GUILayout.Button($"{info.IP}:{info.Port}", GUILayout.Width(availableWidth * widthPercentages[2])))
                    {
                        ConnectToServerFromMasterServer(info);
                    }
                    GUI.enabled = true;

                    GUILayout.EndHorizontal();
                }

                GUILayout.EndScrollView();
            }
        }
예제 #3
0
        void OnStatGUI()
        {
            GUILayout.Label("Time: " + NetworkTime.time);

            if (NetStatus.IsServer)
            {
                Utilities.GUIUtils.DrawHorizontalLine(1, 1, Color.black);
                GUILayout.Label("Num connections: " + NetworkServer.connections.Count);
                GUILayout.Label("Max num players: " + NetManager.maxNumPlayers);
            }

            if (NetStatus.IsClientActive())
            {
                Utilities.GUIUtils.DrawHorizontalLine(1, 1, Color.black);
                GUILayout.Label("Ping: " + NetworkTime.rtt);
                GUILayout.Label("Ping send frequency: " + NetworkTime.PingFrequency);
                GUILayout.Label("Rtt sd: " + NetworkTime.rttSd);
                GUILayout.Label("Rtt var: " + NetworkTime.rttVar);
                GUILayout.Label("Server ip: " + NetworkClient.serverIp);
                GUILayout.Label("Time since last message: " + (Time.unscaledTime - NetworkClient.connection.lastMessageTime));
            }
        }