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(); }
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(); }