@@ -1621,11 +1621,10 @@ internal bool SynchronizeScale
16211621 public bool CanCommitToTransform { get ; protected set ; }
16221622
16231623 /// <summary>
1624- /// Internally used by <see cref="NetworkTransform"/> to keep track of the <see cref="NetworkManager"/> instance assigned to
1624+ /// Internally used by <see cref="NetworkTransform"/> to keep track of the <see cref="NetworkManager"/> instance assigned to this
16251625 /// this <see cref="NetworkBehaviour"/> derived class instance.
16261626 /// </summary>
16271627 protected NetworkManager m_CachedNetworkManager ;
1628- private int m_CachedTickRate ;
16291628
16301629 /// <summary>
16311630 /// Helper method that returns the space relative position of the transform.
@@ -2137,8 +2136,9 @@ private bool CheckForStateChange(ref NetworkTransformState networkState, bool is
21372136 // We compare against the NetworkTickSystem version since ServerTime is set when updating ticks
21382137 if ( UseUnreliableDeltas && ! isSynchronization && m_DeltaSynch && m_NextTickSync <= CurrentTick )
21392138 {
2139+ // TODO-CACHE: m_CachedNetworkManager.NetworkConfig.TickRate value
21402140 // Increment to the next frame synch tick position for this instance
2141- m_NextTickSync += m_CachedTickRate ;
2141+ m_NextTickSync += ( int ) m_CachedNetworkManager . NetworkConfig . TickRate ;
21422142 // If we are teleporting, we do not need to send a frame synch for this tick slot
21432143 // as a "frame synch" really is effectively just a teleport.
21442144 isAxisSync = ! flagStates . IsTeleportingNextFrame ;
@@ -2606,7 +2606,7 @@ private void OnNetworkTick(bool isCalledFromParent = false)
26062606 }
26072607 else // If we are no longer authority, unsubscribe to the tick event
26082608 {
2609- DeregisterForTickUpdate ( ) ;
2609+ DeregisterForTickUpdate ( this ) ;
26102610 }
26112611 }
26122612 #endregion
@@ -3537,7 +3537,7 @@ private void ApplyPlayerTransformState()
35373537
35383538 /// <summary>
35393539 /// For dynamically spawned NetworkObjects, when the non-authority instance's client is already connected and
3540- /// the SynchronizeState is still pending synchronization then we want to finalize the synchronization at this time.
3540+ /// the SynchronizeState is still pending synchronization then we want to finalize the synchornization at this time.
35413541 /// </summary>
35423542 protected internal override void InternalOnNetworkPostSpawn ( )
35433543 {
@@ -3550,7 +3550,7 @@ protected internal override void InternalOnNetworkPostSpawn()
35503550 // Then we want to:
35513551 // - Force the "IsSynchronizing" flag so the NetworkTransform has its state updated properly and runs through the initialization again.
35523552 // - Make sure the SynchronizingState is updated to the instantiated prefab's default flags/settings.
3553- if ( m_CachedNetworkManager . IsServer && ! m_CachedNetworkManager . DistributedAuthorityMode && ! IsOwner && ! OnIsServerAuthoritative ( ) && ! SynchronizeState . IsSynchronizing )
3553+ if ( NetworkManager . IsServer && ! NetworkManager . DistributedAuthorityMode && ! IsOwner && ! OnIsServerAuthoritative ( ) && ! SynchronizeState . IsSynchronizing )
35543554 {
35553555 // Handle the first/root NetworkTransform slightly differently to have a sequenced synchronization of like authority nested NetworkTransform components
35563556 if ( m_IsFirstNetworkTransform )
@@ -3578,7 +3578,7 @@ protected internal override void InternalOnNetworkPostSpawn()
35783578 }
35793579
35803580 // Standard non-authority synchronization is handled here
3581- if ( ! CanCommitToTransform && m_CachedNetworkManager . IsConnectedClient && SynchronizeState . IsSynchronizing )
3581+ if ( ! CanCommitToTransform && NetworkManager . IsConnectedClient && SynchronizeState . IsSynchronizing )
35823582 {
35833583 NonAuthorityFinalizeSynchronization ( ) ;
35843584 }
@@ -3631,14 +3631,14 @@ internal override void InternalOnNetworkPreSpawn(ref NetworkManager networkManag
36313631 public override void OnNetworkSpawn ( )
36323632 {
36333633 m_ParentedChildren . Clear ( ) ;
3634+ m_CachedNetworkManager = NetworkManager ;
36343635
36353636 Initialize ( ) ;
36363637
36373638 if ( CanCommitToTransform && ! SwitchTransformSpaceWhenParented )
36383639 {
36393640 SetState ( GetSpaceRelativePosition ( ) , GetSpaceRelativeRotation ( ) , GetScale ( ) , false ) ;
36403641 }
3641- base . OnNetworkSpawn ( ) ;
36423642 }
36433643
36443644 private void CleanUpOnDestroyOrDespawn ( )
@@ -3651,10 +3651,10 @@ private void CleanUpOnDestroyOrDespawn()
36513651#endif
36523652 if ( m_CachedNetworkObject != null )
36533653 {
3654- m_CachedNetworkManager . NetworkTransformRegistration ( m_CachedNetworkObject , forUpdate , false ) ;
3654+ NetworkManager ? . NetworkTransformRegistration ( m_CachedNetworkObject , forUpdate , false ) ;
36553655 }
36563656
3657- DeregisterForTickUpdate ( ) ;
3657+ DeregisterForTickUpdate ( this ) ;
36583658 CanCommitToTransform = false ;
36593659 }
36603660
@@ -3697,7 +3697,7 @@ protected virtual void OnInitialize(ref NetworkVariable<NetworkTransformState> r
36973697 /// </summary>
36983698 private void ResetInterpolatedStateToCurrentAuthoritativeState ( )
36993699 {
3700- var serverTime = m_CachedNetworkManager . ServerTime . Time ;
3700+ var serverTime = NetworkManager . ServerTime . Time ;
37013701#if COM_UNITY_MODULES_PHYSICS || COM_UNITY_MODULES_PHYSICS2D
37023702 var position = m_UseRigidbodyForMotion ? m_NetworkRigidbodyInternal . GetPosition ( ) : GetSpaceRelativePosition ( ) ;
37033703 var rotation = m_UseRigidbodyForMotion ? m_NetworkRigidbodyInternal . GetRotation ( ) : GetSpaceRelativeRotation ( ) ;
@@ -3719,7 +3719,7 @@ private void ResetInterpolatedStateToCurrentAuthoritativeState()
37193719 }
37203720 private NetworkObject m_CachedNetworkObject ;
37213721 /// <summary>
3722- /// The internal initialization method to allow for internal API adjustments
3722+ /// The internal initialzation method to allow for internal API adjustments
37233723 /// </summary>
37243724 /// <param name="isOwnershipChange"></param>
37253725 private void InternalInitialization ( bool isOwnershipChange = false )
@@ -3729,10 +3729,9 @@ private void InternalInitialization(bool isOwnershipChange = false)
37293729 return ;
37303730 }
37313731 m_CachedNetworkObject = NetworkObject ;
3732- m_CachedTickRate = ( int ) m_CachedNetworkManager . NetworkConfig . TickRate ;
37333732
37343733 // Determine if this is the first NetworkTransform in the associated NetworkObject's list
3735- m_IsFirstNetworkTransform = m_CachedNetworkObject . NetworkTransforms [ 0 ] == this ;
3734+ m_IsFirstNetworkTransform = NetworkObject . NetworkTransforms [ 0 ] == this ;
37363735
37373736 if ( m_CachedNetworkManager && m_CachedNetworkManager . DistributedAuthorityMode )
37383737 {
@@ -3756,9 +3755,9 @@ private void InternalInitialization(bool isOwnershipChange = false)
37563755 var currentPosition = GetSpaceRelativePosition ( ) ;
37573756 var currentRotation = GetSpaceRelativeRotation ( ) ;
37583757
3759- if ( m_CachedNetworkManager . DistributedAuthorityMode )
3758+ if ( NetworkManager . DistributedAuthorityMode )
37603759 {
3761- RegisterNetworkManagerForTickUpdate ( m_CachedNetworkManager ) ;
3760+ RegisterNetworkManagerForTickUpdate ( NetworkManager ) ;
37623761 }
37633762
37643763#if COM_UNITY_MODULES_PHYSICS || COM_UNITY_MODULES_PHYSICS2D
@@ -3794,7 +3793,7 @@ private void InternalInitialization(bool isOwnershipChange = false)
37943793 m_InternalCurrentPosition = currentPosition ;
37953794 m_LastStateTargetPosition = currentPosition ;
37963795
3797- RegisterForTickUpdate ( ) ;
3796+ RegisterForTickUpdate ( this ) ;
37983797
37993798 if ( UseHalfFloatPrecision && isOwnershipChange && ! IsServerAuthoritative ( ) && Interpolate )
38003799 {
@@ -3814,7 +3813,7 @@ private void InternalInitialization(bool isOwnershipChange = false)
38143813 // Non-authority needs to be added to updates for interpolation and applying state purposes
38153814 m_CachedNetworkManager . NetworkTransformRegistration ( NetworkObject , forUpdate , true ) ;
38163815 // Remove this instance from the tick update
3817- DeregisterForTickUpdate ( ) ;
3816+ DeregisterForTickUpdate ( this ) ;
38183817 ResetInterpolatedStateToCurrentAuthoritativeState ( ) ;
38193818 m_InternalCurrentPosition = currentPosition ;
38203819 m_LastStateTargetPosition = currentPosition ;
@@ -3942,7 +3941,7 @@ internal override void InternalOnNetworkObjectParentChanged(NetworkObject parent
39423941 if ( LastTickSync == m_LocalAuthoritativeNetworkState . GetNetworkTick ( ) )
39433942 {
39443943 m_InternalCurrentPosition = m_LastStateTargetPosition = GetSpaceRelativePosition ( ) ;
3945- m_PositionInterpolator . ResetTo ( m_PositionInterpolator . Parent , m_InternalCurrentPosition , m_CachedNetworkManager . ServerTime . Time ) ;
3944+ m_PositionInterpolator . ResetTo ( m_PositionInterpolator . Parent , m_InternalCurrentPosition , NetworkManager . ServerTime . Time ) ;
39463945 if ( InLocalSpace )
39473946 {
39483947 transform . localPosition = m_InternalCurrentPosition ;
@@ -3974,7 +3973,7 @@ internal override void InternalOnNetworkObjectParentChanged(NetworkObject parent
39743973 {
39753974 m_InternalCurrentRotation = GetSpaceRelativeRotation ( ) ;
39763975 m_TargetRotation = m_InternalCurrentRotation . eulerAngles ;
3977- m_RotationInterpolator . ResetTo ( m_RotationInterpolator . Parent , m_InternalCurrentRotation , m_CachedNetworkManager . ServerTime . Time ) ;
3976+ m_RotationInterpolator . ResetTo ( m_RotationInterpolator . Parent , m_InternalCurrentRotation , NetworkManager . ServerTime . Time ) ;
39783977 if ( InLocalSpace )
39793978 {
39803979 transform . localRotation = m_InternalCurrentRotation ;
@@ -4597,7 +4596,7 @@ internal void TransformStateUpdate()
45974596 {
45984597 // TODO: Investigate where this state should be applied or just discarded.
45994598 // For now, discard the state if we assumed ownership.
4600- // Debug.Log($"[Client-{m_CachedNetworkManager .LocalClientId}] Ignoring inbound update from Client-{0} and parentUpdated:{isParentingDirective}!");
4599+ // Debug.Log($"[Client-{NetworkManager .LocalClientId}] Ignoring inbound update from Client-{0} and parentUpdated:{isParentingDirective}!");
46014600 return ;
46024601 }
46034602 // Store the previous/old state
@@ -4654,17 +4653,17 @@ private void UpdateTransformState()
46544653 {
46554654 continue ;
46564655 }
4657- if ( ! m_CachedNetworkObject . Observers . Contains ( clientId ) )
4656+ if ( ! NetworkObject . Observers . Contains ( clientId ) )
46584657 {
46594658 continue ;
46604659 }
4661- m_CachedNetworkManager . MessageManager . SendMessage ( ref m_OutboundMessage , networkDelivery , clientId ) ;
4660+ NetworkManager . MessageManager . SendMessage ( ref m_OutboundMessage , networkDelivery , clientId ) ;
46624661 }
46634662 }
46644663 else
46654664 {
46664665 // Clients (owner authoritative) send messages to the server-host
4667- m_CachedNetworkManager . MessageManager . SendMessage ( ref m_OutboundMessage , networkDelivery , NetworkManager . ServerClientId ) ;
4666+ NetworkManager . MessageManager . SendMessage ( ref m_OutboundMessage , networkDelivery , NetworkManager . ServerClientId ) ;
46684667 }
46694668 m_LocalAuthoritativeNetworkState . LastSerializedSize = m_OutboundMessage . BytesWritten ;
46704669 }
@@ -4803,7 +4802,7 @@ public NetworkTransformTickRegistration(NetworkManager networkManager)
48034802 internal void RegisterForTickSynchronization ( )
48044803 {
48054804 s_TickSynchPosition ++ ;
4806- m_NextTickSync = m_CachedNetworkManager . ServerTime . Tick + ( s_TickSynchPosition % m_CachedTickRate ) ;
4805+ m_NextTickSync = NetworkManager . ServerTime . Tick + ( s_TickSynchPosition % ( int ) NetworkManager . NetworkConfig . TickRate ) ;
48074806 }
48084807
48094808 private static void RegisterNetworkManagerForTickUpdate ( NetworkManager networkManager )
@@ -4819,34 +4818,36 @@ private static void RegisterNetworkManagerForTickUpdate(NetworkManager networkMa
48194818 /// If a NetworkTransformTickRegistration has not yet been registered for the NetworkManager
48204819 /// instance, then create an entry.
48214820 /// </summary>
4822- private void RegisterForTickUpdate ( )
4821+ /// <param name="networkTransform"></param>
4822+ private static void RegisterForTickUpdate ( NetworkTransform networkTransform )
48234823 {
48244824
4825- if ( ! m_CachedNetworkManager . DistributedAuthorityMode && ! s_NetworkTickRegistration . ContainsKey ( m_CachedNetworkManager ) )
4825+ if ( ! networkTransform . NetworkManager . DistributedAuthorityMode && ! s_NetworkTickRegistration . ContainsKey ( networkTransform . NetworkManager ) )
48264826 {
4827- s_NetworkTickRegistration . Add ( m_CachedNetworkManager , new NetworkTransformTickRegistration ( m_CachedNetworkManager ) ) ;
4827+ s_NetworkTickRegistration . Add ( networkTransform . NetworkManager , new NetworkTransformTickRegistration ( networkTransform . NetworkManager ) ) ;
48284828 }
48294829
4830- RegisterForTickSynchronization ( ) ;
4831- s_NetworkTickRegistration [ m_CachedNetworkManager ] . NetworkTransforms . Add ( this ) ;
4830+ networkTransform . RegisterForTickSynchronization ( ) ;
4831+ s_NetworkTickRegistration [ networkTransform . NetworkManager ] . NetworkTransforms . Add ( networkTransform ) ;
48324832 }
48334833
48344834 /// <summary>
48354835 /// If a NetworkTransformTickRegistration exists for the NetworkManager instance, then this will
48364836 /// remove the NetworkTransform instance from the single tick update entry point.
48374837 /// </summary>
4838- private void DeregisterForTickUpdate ( )
4838+ /// <param name="networkTransform"></param>
4839+ private static void DeregisterForTickUpdate ( NetworkTransform networkTransform )
48394840 {
4840- if ( m_CachedNetworkManager == null )
4841+ if ( networkTransform . NetworkManager == null )
48414842 {
48424843 return ;
48434844 }
4844- if ( s_NetworkTickRegistration . ContainsKey ( m_CachedNetworkManager ) )
4845+ if ( s_NetworkTickRegistration . ContainsKey ( networkTransform . NetworkManager ) )
48454846 {
4846- s_NetworkTickRegistration [ m_CachedNetworkManager ] . NetworkTransforms . Remove ( this ) ;
4847- if ( ! m_CachedNetworkManager . DistributedAuthorityMode && s_NetworkTickRegistration [ m_CachedNetworkManager ] . NetworkTransforms . Count == 0 )
4847+ s_NetworkTickRegistration [ networkTransform . NetworkManager ] . NetworkTransforms . Remove ( networkTransform ) ;
4848+ if ( ! networkTransform . NetworkManager . DistributedAuthorityMode && s_NetworkTickRegistration [ networkTransform . NetworkManager ] . NetworkTransforms . Count == 0 )
48484849 {
4849- var registrationEntry = s_NetworkTickRegistration [ m_CachedNetworkManager ] ;
4850+ var registrationEntry = s_NetworkTickRegistration [ networkTransform . NetworkManager ] ;
48504851 registrationEntry . Remove ( ) ;
48514852 }
48524853 }
0 commit comments