RoundTripTime









How do I use Round Trip Time
Below are practical examples compiled from projects for learning and reference purposes

Featured Snippets


File name: PhotonTransformViewEditor.cs Copy
232     private void DrawSynchronizePositionDataExtrapolation(ref Rect propertyRect, SerializedProperty extrapolatePositionProperty, PhotonTransformViewPositionModel.ExtrapolateOptions extrapolateOption)
233     {
234         DrawPropertyWithHelpIcon(ref propertyRect, ref this.m_ExtrapolateHelpOpen, extrapolatePositionProperty, EXTRAPOLATE_TOOLTIP);
235         DrawHelpBox(ref propertyRect, this.m_ExtrapolateHelpOpen, GetExtrapolateHelpBoxHeight(), EXTRAPOLATE_HELP, EXTRAPOLATE_HELP_URL);
236
237         if (extrapolateOption != PhotonTransformViewPositionModel.ExtrapolateOptions.Disabled)
238         {
239             EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_PositionModel.ExtrapolateIncludingRoundTripTime"));
240             propertyRect.y += EDITOR_LINE_HEIGHT;
241         }
242
243         switch (extrapolateOption)
244         {
245             case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed:
246                 EditorGUI.PropertyField(propertyRect, serializedObject.FindProperty("m_PositionModel.ExtrapolateSpeed"));
247                 propertyRect.y += EDITOR_LINE_HEIGHT;
248                 break;
249         }
250     }
File name: PhotonTransformViewPositionControl.cs Copy
132     public Vector3 GetExtrapolatedPositionOffset()
133     {
134         float timePassed = (float)( PhotonNetwork.time - m_LastSerializeTime );
135
136         if( m_Model.ExtrapolateIncludingRoundTripTime == true )
137         {
138             timePassed += (float)PhotonNetwork.GetPing() / 1000f;
139         }
140
141         Vector3 extrapolatePosition = Vector3.zero;
142
143         switch( m_Model.ExtrapolateOption )
144         {
145         case PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues:
146             Quaternion turnRotation = Quaternion.Euler( 0, m_SynchronizedTurnSpeed * timePassed, 0 );
147             extrapolatePosition = turnRotation * ( m_SynchronizedSpeed * timePassed );
148             break;
149         case PhotonTransformViewPositionModel.ExtrapolateOptions.FixedSpeed:
150             Vector3 moveDirection = ( m_NetworkPosition - GetOldestStoredNetworkPosition() ).normalized;
151
152             extrapolatePosition = moveDirection * m_Model.ExtrapolateSpeed * timePassed;
153             break;
154         case PhotonTransformViewPositionModel.ExtrapolateOptions.EstimateSpeedAndTurn:
155             Vector3 moveDelta = ( m_NetworkPosition - GetOldestStoredNetworkPosition() ) * PhotonNetwork.sendRateOnSerialize;
156             extrapolatePosition = moveDelta * timePassed;
157             break;
158         }
159
160         return extrapolatePosition;
161     }
File name: PhotonLagSimulationGui.cs Copy
57     private void NetSimWindow(int windowId)
58     {
59         GUILayout.Label(string.Format("Rtt:{0,4} +/-{1,3}", this.Peer.RoundTripTime, this.Peer.RoundTripTimeVariance));
60
61         bool simEnabled = this.Peer.IsSimulationEnabled;
62         bool newSimEnabled = GUILayout.Toggle(simEnabled, "Simulate");
63         if (newSimEnabled != simEnabled)
64         {
65             this.Peer.IsSimulationEnabled = newSimEnabled;
66         }
67
68         float inOutLag = this.Peer.NetworkSimulationSettings.IncomingLag;
69         GUILayout.Label("Lag " + inOutLag);
70         inOutLag = GUILayout.HorizontalSlider(inOutLag, 0, 500);
71
72         this.Peer.NetworkSimulationSettings.IncomingLag = (int)inOutLag;
73         this.Peer.NetworkSimulationSettings.OutgoingLag = (int)inOutLag;
74
75         float inOutJitter = this.Peer.NetworkSimulationSettings.IncomingJitter;
76         GUILayout.Label("Jit " + inOutJitter);
77         inOutJitter = GUILayout.HorizontalSlider(inOutJitter, 0, 100);
78
79         this.Peer.NetworkSimulationSettings.IncomingJitter = (int)inOutJitter;
80         this.Peer.NetworkSimulationSettings.OutgoingJitter = (int)inOutJitter;
81
82         float loss = this.Peer.NetworkSimulationSettings.IncomingLossPercentage;
83         GUILayout.Label("Loss " + loss);
84         loss = GUILayout.HorizontalSlider(loss, 0, 10);
85
86         this.Peer.NetworkSimulationSettings.IncomingLossPercentage = (int)loss;
87         this.Peer.NetworkSimulationSettings.OutgoingLossPercentage = (int)loss;
88
89         // if anything was clicked, the height of this window is likely changed. reduce it to be layouted again next frame
90         if (GUI.changed)
91         {
92             this.WindowRect.height = 100;
93         }
94
95         GUI.DragWindow();
96     }
File name: PhotonNetwork.cs Copy
2207     public static int GetPing()
2208     {
2209         return networkingPeer.RoundTripTime;
2210     }
File name: PhotonStatsGui.cs Copy
77     public void TrafficStatsWindow(int windowID)
78     {
79         bool statsToLog = false;
80         TrafficStatsGameLevel gls = PhotonNetwork.networkingPeer.TrafficStatsGameLevel;
81         long elapsedMs = PhotonNetwork.networkingPeer.TrafficStatsElapsedMs / 1000;
82         if (elapsedMs == 0)
83         {
84             elapsedMs = 1;
85         }
86
87         GUILayout.BeginHorizontal();
88         this.buttonsOn = GUILayout.Toggle(this.buttonsOn, "buttons");
89         this.healthStatsVisible = GUILayout.Toggle(this.healthStatsVisible, "health");
90         this.trafficStatsOn = GUILayout.Toggle(this.trafficStatsOn, "traffic");
91         GUILayout.EndHorizontal();
92
93         string total = string.Format("Out|In|Sum:\t{0,4} | {1,4} | {2,4}", gls.TotalOutgoingMessageCount, gls.TotalIncomingMessageCount, gls.TotalMessageCount);
94         string elapsedTime = string.Format("{0}sec average:", elapsedMs);
95         string average = string.Format("Out|In|Sum:\t{0,4} | {1,4} | {2,4}", gls.TotalOutgoingMessageCount / elapsedMs, gls.TotalIncomingMessageCount / elapsedMs, gls.TotalMessageCount / elapsedMs);
96         GUILayout.Label(total);
97         GUILayout.Label(elapsedTime);
98         GUILayout.Label(average);
99
100         if (this.buttonsOn)
101         {
102             GUILayout.BeginHorizontal();
103             this.statsOn = GUILayout.Toggle(this.statsOn, "stats on");
104             if (GUILayout.Button("Reset"))
105             {
106                 PhotonNetwork.networkingPeer.TrafficStatsReset();
107                 PhotonNetwork.networkingPeer.TrafficStatsEnabled = true;
108             }
109             statsToLog = GUILayout.Button("To Log");
110             GUILayout.EndHorizontal();
111         }
112
113         string trafficStatsIn = string.Empty;
114         string trafficStatsOut = string.Empty;
115         if (this.trafficStatsOn)
116         {
117             trafficStatsIn = "Incoming: " + PhotonNetwork.networkingPeer.TrafficStatsIncoming.ToString();
118             trafficStatsOut = "Outgoing: " + PhotonNetwork.networkingPeer.TrafficStatsOutgoing.ToString();
119             GUILayout.Label(trafficStatsIn);
120             GUILayout.Label(trafficStatsOut);
121         }
122
123         string healthStats = string.Empty;
124         if (this.healthStatsVisible)
125         {
126             healthStats = string.Format(
127                 "ping: {6}[+/-{7}]ms\nlongest delta between\nsend: {0,4}ms disp: {1,4}ms\nlongest time for:\nev({3}):{2,3}ms op({5}):{4,3}ms",
128                 gls.LongestDeltaBetweenSending,
129                 gls.LongestDeltaBetweenDispatching,
130                 gls.LongestEventCallback,
131                 gls.LongestEventCallbackCode,
132                 gls.LongestOpResponseCallback,
133                 gls.LongestOpResponseCallbackOpCode,
134                 PhotonNetwork.networkingPeer.RoundTripTime,
135                 PhotonNetwork.networkingPeer.RoundTripTimeVariance);
136             GUILayout.Label(healthStats);
137         }
138
139         if (statsToLog)
140         {
141             string complete = string.Format("{0}\n{1}\n{2}\n{3}\n{4}\n{5}", total, elapsedTime, average, trafficStatsIn, trafficStatsOut, healthStats);
142             Debug.Log(complete);
143         }
144
145         // if anything was clicked, the height of this window is likely changed. reduce it to be layouted again next frame
146         if (GUI.changed)
147         {
148             this.statsRect.height = 100;
149         }
150
151         GUI.DragWindow();
152     }

RoundTripTime 119 lượt xem

Gõ tìm kiếm nhanh...