@@ -86,6 +86,8 @@ public struct TransformState
8686
8787 private bool m_OutstandingAuthorityChange = false ;
8888
89+ private NetworkManager m_NetworkManager ;
90+
8991#if UNITY_EDITOR
9092 private void Reset ( )
9193 {
@@ -157,7 +159,7 @@ public bool ShouldReanticipate
157159 /// <param name="newPosition">The anticipated position</param>
158160 public void AnticipateMove ( Vector3 newPosition )
159161 {
160- if ( NetworkManager . ShutdownInProgress || ! NetworkManager . IsListening )
162+ if ( m_NetworkManager == null || m_NetworkManager . ShutdownInProgress || ! m_NetworkManager . IsListening )
161163 {
162164 return ;
163165 }
@@ -170,7 +172,7 @@ public void AnticipateMove(Vector3 newPosition)
170172
171173 m_PreviousAnticipatedTransform = m_AnticipatedTransform ;
172174
173- m_LastAnticipaionCounter = NetworkManager . AnticipationSystem . AnticipationCounter ;
175+ m_LastAnticipaionCounter = m_NetworkManager . AnticipationSystem . AnticipationCounter ;
174176
175177 m_SmoothDuration = 0 ;
176178 m_CurrentSmoothTime = 0 ;
@@ -183,7 +185,7 @@ public void AnticipateMove(Vector3 newPosition)
183185 /// <param name="newRotation">The anticipated rotation</param>
184186 public void AnticipateRotate ( Quaternion newRotation )
185187 {
186- if ( NetworkManager . ShutdownInProgress || ! NetworkManager . IsListening )
188+ if ( m_NetworkManager == null || m_NetworkManager . ShutdownInProgress || ! m_NetworkManager . IsListening )
187189 {
188190 return ;
189191 }
@@ -196,7 +198,7 @@ public void AnticipateRotate(Quaternion newRotation)
196198
197199 m_PreviousAnticipatedTransform = m_AnticipatedTransform ;
198200
199- m_LastAnticipaionCounter = NetworkManager . AnticipationSystem . AnticipationCounter ;
201+ m_LastAnticipaionCounter = m_NetworkManager . AnticipationSystem . AnticipationCounter ;
200202
201203 m_SmoothDuration = 0 ;
202204 m_CurrentSmoothTime = 0 ;
@@ -209,7 +211,7 @@ public void AnticipateRotate(Quaternion newRotation)
209211 /// <param name="newScale">The anticipated scale</param>
210212 public void AnticipateScale ( Vector3 newScale )
211213 {
212- if ( NetworkManager . ShutdownInProgress || ! NetworkManager . IsListening )
214+ if ( m_NetworkManager == null || m_NetworkManager . ShutdownInProgress || ! m_NetworkManager . IsListening )
213215 {
214216 return ;
215217 }
@@ -222,7 +224,7 @@ public void AnticipateScale(Vector3 newScale)
222224
223225 m_PreviousAnticipatedTransform = m_AnticipatedTransform ;
224226
225- m_LastAnticipaionCounter = NetworkManager . AnticipationSystem . AnticipationCounter ;
227+ m_LastAnticipaionCounter = m_NetworkManager . AnticipationSystem . AnticipationCounter ;
226228
227229 m_SmoothDuration = 0 ;
228230 m_CurrentSmoothTime = 0 ;
@@ -235,7 +237,7 @@ public void AnticipateScale(Vector3 newScale)
235237 /// <param name="newState">The anticipated transform state</param>
236238 public void AnticipateState ( TransformState newState )
237239 {
238- if ( NetworkManager . ShutdownInProgress || ! NetworkManager . IsListening )
240+ if ( m_NetworkManager == null || m_NetworkManager . ShutdownInProgress || ! m_NetworkManager . IsListening )
239241 {
240242 return ;
241243 }
@@ -264,7 +266,7 @@ private void ProcessSmoothing()
264266
265267 if ( m_CurrentSmoothTime < m_SmoothDuration )
266268 {
267- m_CurrentSmoothTime += NetworkManager . RealTimeProvider . DeltaTime ;
269+ m_CurrentSmoothTime += m_NetworkManager . RealTimeProvider . DeltaTime ;
268270 var transform_ = transform ;
269271 var pct = math . min ( m_CurrentSmoothTime / m_SmoothDuration , 1f ) ;
270272
@@ -397,8 +399,8 @@ protected internal override void InternalOnNetworkSessionSynchronized()
397399 ResetAnticipatedState ( ) ;
398400
399401 m_AnticipatedObject = new AnticipatedObject { Transform = this } ;
400- NetworkManager . AnticipationSystem . RegisterForAnticipationEvents ( m_AnticipatedObject ) ;
401- NetworkManager . AnticipationSystem . AllAnticipatedObjects . Add ( m_AnticipatedObject ) ;
402+ m_NetworkManager . AnticipationSystem . RegisterForAnticipationEvents ( m_AnticipatedObject ) ;
403+ m_NetworkManager . AnticipationSystem . AllAnticipatedObjects . Add ( m_AnticipatedObject ) ;
402404 }
403405 }
404406
@@ -410,21 +412,23 @@ protected internal override void InternalOnNetworkSessionSynchronized()
410412 protected internal override void InternalOnNetworkPostSpawn ( )
411413 {
412414 base . InternalOnNetworkPostSpawn ( ) ;
413- if ( ! CanCommitToTransform && NetworkManager . IsConnectedClient && ! SynchronizeState . IsSynchronizing )
415+ if ( ! CanCommitToTransform && m_NetworkManager . IsConnectedClient && ! SynchronizeState . IsSynchronizing )
414416 {
415417 m_OutstandingAuthorityChange = true ;
416418 ApplyAuthoritativeState ( ) ;
417419 ResetAnticipatedState ( ) ;
418420 m_AnticipatedObject = new AnticipatedObject { Transform = this } ;
419- NetworkManager . AnticipationSystem . RegisterForAnticipationEvents ( m_AnticipatedObject ) ;
420- NetworkManager . AnticipationSystem . AllAnticipatedObjects . Add ( m_AnticipatedObject ) ;
421+ m_NetworkManager . AnticipationSystem . RegisterForAnticipationEvents ( m_AnticipatedObject ) ;
422+ m_NetworkManager . AnticipationSystem . AllAnticipatedObjects . Add ( m_AnticipatedObject ) ;
421423 }
422424 }
423425
424426 /// <inheritdoc/>
425427 public override void OnNetworkSpawn ( )
426428 {
427- if ( NetworkManager . DistributedAuthorityMode )
429+ m_NetworkManager = NetworkManager ;
430+
431+ if ( m_NetworkManager . DistributedAuthorityMode )
428432 {
429433 Debug . LogWarning ( $ "This component is not currently supported in distributed authority.") ;
430434 }
@@ -441,18 +445,18 @@ public override void OnNetworkSpawn()
441445 ResetAnticipatedState ( ) ;
442446
443447 m_AnticipatedObject = new AnticipatedObject { Transform = this } ;
444- NetworkManager . AnticipationSystem . RegisterForAnticipationEvents ( m_AnticipatedObject ) ;
445- NetworkManager . AnticipationSystem . AllAnticipatedObjects . Add ( m_AnticipatedObject ) ;
448+ m_NetworkManager . AnticipationSystem . RegisterForAnticipationEvents ( m_AnticipatedObject ) ;
449+ m_NetworkManager . AnticipationSystem . AllAnticipatedObjects . Add ( m_AnticipatedObject ) ;
446450 }
447451
448452 /// <inheritdoc/>
449453 public override void OnNetworkDespawn ( )
450454 {
451455 if ( m_AnticipatedObject != null )
452456 {
453- NetworkManager . AnticipationSystem . DeregisterForAnticipationEvents ( m_AnticipatedObject ) ;
454- NetworkManager . AnticipationSystem . AllAnticipatedObjects . Remove ( m_AnticipatedObject ) ;
455- NetworkManager . AnticipationSystem . ObjectsToReanticipate . Remove ( m_AnticipatedObject ) ;
457+ m_NetworkManager . AnticipationSystem . DeregisterForAnticipationEvents ( m_AnticipatedObject ) ;
458+ m_NetworkManager . AnticipationSystem . AllAnticipatedObjects . Remove ( m_AnticipatedObject ) ;
459+ m_NetworkManager . AnticipationSystem . ObjectsToReanticipate . Remove ( m_AnticipatedObject ) ;
456460 m_AnticipatedObject = null ;
457461 }
458462 ResetAnticipatedState ( ) ;
@@ -465,9 +469,9 @@ public override void OnDestroy()
465469 {
466470 if ( m_AnticipatedObject != null )
467471 {
468- NetworkManager . AnticipationSystem . DeregisterForAnticipationEvents ( m_AnticipatedObject ) ;
469- NetworkManager . AnticipationSystem . AllAnticipatedObjects . Remove ( m_AnticipatedObject ) ;
470- NetworkManager . AnticipationSystem . ObjectsToReanticipate . Remove ( m_AnticipatedObject ) ;
472+ m_NetworkManager . AnticipationSystem . DeregisterForAnticipationEvents ( m_AnticipatedObject ) ;
473+ m_NetworkManager . AnticipationSystem . AllAnticipatedObjects . Remove ( m_AnticipatedObject ) ;
474+ m_NetworkManager . AnticipationSystem . ObjectsToReanticipate . Remove ( m_AnticipatedObject ) ;
471475 m_AnticipatedObject = null ;
472476 }
473477
@@ -514,7 +518,7 @@ public void Smooth(TransformState from, TransformState to, float durationSeconds
514518 protected override void OnBeforeUpdateTransformState ( )
515519 {
516520 // this is called when new data comes from the server
517- m_LastAuthorityUpdateCounter = NetworkManager . AnticipationSystem . LastAnticipationAck ;
521+ m_LastAuthorityUpdateCounter = m_NetworkManager . AnticipationSystem . LastAnticipationAck ;
518522 m_OutstandingAuthorityChange = true ;
519523 }
520524
@@ -567,7 +571,7 @@ protected override void OnTransformUpdated()
567571 m_AnticipatedTransform = m_AuthoritativeTransform ;
568572
569573 ShouldReanticipate = true ;
570- NetworkManager . AnticipationSystem . ObjectsToReanticipate . Add ( m_AnticipatedObject ) ;
574+ m_NetworkManager . AnticipationSystem . ObjectsToReanticipate . Add ( m_AnticipatedObject ) ;
571575 }
572576 }
573577}
0 commit comments