Esempio n. 1
0
        public void TrafficStatsWindow(int windowID)
        {
            bool statsToLog           = false;
            TrafficStatsGameLevel gls = PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsGameLevel;
            long elapsedMs            = PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsElapsedMs / 1000;

            if (elapsedMs == 0)
            {
                elapsedMs = 1;
            }

            GUILayout.BeginHorizontal();
            this.buttonsOn          = GUILayout.Toggle(this.buttonsOn, "buttons");
            this.healthStatsVisible = GUILayout.Toggle(this.healthStatsVisible, "health");
            this.trafficStatsOn     = GUILayout.Toggle(this.trafficStatsOn, "traffic");
            GUILayout.EndHorizontal();

            string total = string.Format("Out {0,4} | In {1,4} | Sum {2,4}", gls.TotalOutgoingMessageCount,
                                         gls.TotalIncomingMessageCount, gls.TotalMessageCount);
            string elapsedTime = string.Format("{0}sec average:", elapsedMs);
            string average     = string.Format("Out {0,4} | In {1,4} | Sum {2,4}",
                                               gls.TotalOutgoingMessageCount / elapsedMs, gls.TotalIncomingMessageCount / elapsedMs,
                                               gls.TotalMessageCount / elapsedMs);

            GUILayout.Label(total);
            GUILayout.Label(elapsedTime);
            GUILayout.Label(average);

            if (this.buttonsOn)
            {
                GUILayout.BeginHorizontal();
                this.statsOn = GUILayout.Toggle(this.statsOn, "stats on");
                if (GUILayout.Button("Reset"))
                {
                    PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsReset();
                    PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsEnabled = true;
                }

                statsToLog = GUILayout.Button("To Log");
                GUILayout.EndHorizontal();
            }

            string trafficStatsIn  = string.Empty;
            string trafficStatsOut = string.Empty;

            if (this.trafficStatsOn)
            {
                GUILayout.Box("Traffic Stats");
                trafficStatsIn = "Incoming: \n" +
                                 PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsIncoming.ToString();
                trafficStatsOut = "Outgoing: \n" +
                                  PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsOutgoing.ToString();
                GUILayout.Label(trafficStatsIn);
                GUILayout.Label(trafficStatsOut);
            }

            string healthStats = string.Empty;

            if (this.healthStatsVisible)
            {
                GUILayout.Box("Health Stats");
                healthStats = string.Format(
                    "ping: {6}[+/-{7}]ms resent:{8} \n\nmax ms between\nsend: {0,4} \ndispatch: {1,4} \n\nlongest dispatch for: \nev({3}):{2,3}ms \nop({5}):{4,3}ms",
                    gls.LongestDeltaBetweenSending,
                    gls.LongestDeltaBetweenDispatching,
                    gls.LongestEventCallback,
                    gls.LongestEventCallbackCode,
                    gls.LongestOpResponseCallback,
                    gls.LongestOpResponseCallbackOpCode,
                    PhotonNetwork.NetworkingClient.LoadBalancingPeer.RoundTripTime,
                    PhotonNetwork.NetworkingClient.LoadBalancingPeer.RoundTripTimeVariance,
                    PhotonNetwork.NetworkingClient.LoadBalancingPeer.ResentReliableCommands);
                GUILayout.Label(healthStats);
            }

            if (statsToLog)
            {
                string complete = string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n{5}", total, elapsedTime, average,
                                                trafficStatsIn, trafficStatsOut, healthStats);
                Debug.Log(complete);
            }

            // if anything was clicked, the height of this window is likely changed. reduce it to be layouted again next frame
            if (GUI.changed)
            {
                this.statsRect.height = 100;
            }

            GUI.DragWindow();
        }
Esempio n. 2
0
    public void TrafficStatsWindow(int windowID)
    {
        bool flag = false;
        TrafficStatsGameLevel trafficStatsGameLevel = PhotonNetwork.networkingPeer.get_TrafficStatsGameLevel();
        long num = PhotonNetwork.networkingPeer.get_TrafficStatsElapsedMs() / 1000L;

        if (num == 0L)
        {
            num = 1L;
        }
        GUILayout.BeginHorizontal(new GUILayoutOption[0]);
        this.buttonsOn          = GUILayout.Toggle(this.buttonsOn, "buttons", new GUILayoutOption[0]);
        this.healthStatsVisible = GUILayout.Toggle(this.healthStatsVisible, "health", new GUILayoutOption[0]);
        this.trafficStatsOn     = GUILayout.Toggle(this.trafficStatsOn, "traffic", new GUILayoutOption[0]);
        GUILayout.EndHorizontal();
        string str1 = string.Format("Out {0,4} | In {1,4} | Sum {2,4}", (object)trafficStatsGameLevel.get_TotalOutgoingMessageCount(), (object)trafficStatsGameLevel.get_TotalIncomingMessageCount(), (object)trafficStatsGameLevel.get_TotalMessageCount());
        string str2 = string.Format("{0}sec average:", (object)num);
        string str3 = string.Format("Out {0,4} | In {1,4} | Sum {2,4}", (object)((long)trafficStatsGameLevel.get_TotalOutgoingMessageCount() / num), (object)((long)trafficStatsGameLevel.get_TotalIncomingMessageCount() / num), (object)((long)trafficStatsGameLevel.get_TotalMessageCount() / num));

        GUILayout.Label(str1, new GUILayoutOption[0]);
        GUILayout.Label(str2, new GUILayoutOption[0]);
        GUILayout.Label(str3, new GUILayoutOption[0]);
        if (this.buttonsOn)
        {
            GUILayout.BeginHorizontal(new GUILayoutOption[0]);
            this.statsOn = GUILayout.Toggle(this.statsOn, "stats on", new GUILayoutOption[0]);
            if (GUILayout.Button("Reset", new GUILayoutOption[0]))
            {
                PhotonNetwork.networkingPeer.TrafficStatsReset();
                PhotonNetwork.networkingPeer.set_TrafficStatsEnabled(true);
            }
            flag = GUILayout.Button("To Log", new GUILayoutOption[0]);
            GUILayout.EndHorizontal();
        }
        string str4 = string.Empty;
        string str5 = string.Empty;

        if (this.trafficStatsOn)
        {
            GUILayout.Box("Traffic Stats", new GUILayoutOption[0]);
            str4 = "Incoming: \n" + PhotonNetwork.networkingPeer.get_TrafficStatsIncoming().ToString();
            str5 = "Outgoing: \n" + PhotonNetwork.networkingPeer.get_TrafficStatsOutgoing().ToString();
            GUILayout.Label(str4, new GUILayoutOption[0]);
            GUILayout.Label(str5, new GUILayoutOption[0]);
        }
        string str6 = string.Empty;

        if (this.healthStatsVisible)
        {
            GUILayout.Box("Health Stats", new GUILayoutOption[0]);
            str6 = string.Format("ping: {6}[+/-{7}]ms resent:{8} \n\nmax ms between\nsend: {0,4} \ndispatch: {1,4} \n\nlongest dispatch for: \nev({3}):{2,3}ms \nop({5}):{4,3}ms", (object)trafficStatsGameLevel.get_LongestDeltaBetweenSending(), (object)trafficStatsGameLevel.get_LongestDeltaBetweenDispatching(), (object)trafficStatsGameLevel.get_LongestEventCallback(), (object)trafficStatsGameLevel.get_LongestEventCallbackCode(), (object)trafficStatsGameLevel.get_LongestOpResponseCallback(), (object)trafficStatsGameLevel.get_LongestOpResponseCallbackOpCode(), (object)PhotonNetwork.networkingPeer.get_RoundTripTime(), (object)PhotonNetwork.networkingPeer.get_RoundTripTimeVariance(), (object)PhotonNetwork.networkingPeer.get_ResentReliableCommands());
            GUILayout.Label(str6, new GUILayoutOption[0]);
        }
        if (flag)
        {
            Debug.Log((object)string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n{5}", (object)str1, (object)str2, (object)str3, (object)str4, (object)str5, (object)str6));
        }
        if (GUI.get_changed())
        {
            // ISSUE: explicit reference operation
            ((Rect)@this.statsRect).set_height(100f);
        }
        GUI.DragWindow();
    }