@@ -1621,7 +1621,7 @@ 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 ;
@@ -1847,12 +1847,12 @@ internal void UpdatePositionSlerp()
18471847 /// is the owner being synchronized we don't want to synchronize with
18481848 /// the exception of the NetworkObject being owned by the server.
18491849 /// </summary>
1850- private bool ShouldSynchronizeHalfFloat ( NetworkManager networkManager , ulong targetClientId )
1850+ private bool ShouldSynchronizeHalfFloat ( ulong targetClientId )
18511851 {
18521852 if ( ! IsServerAuthoritative ( ) && NetworkObject . OwnerClientId == targetClientId )
18531853 {
18541854 // In distributed authority mode we want to synchronize the half float if we are the owner.
1855- return ( ! networkManager . DistributedAuthorityMode && NetworkObject . IsOwnedByServer ) || ( networkManager . DistributedAuthorityMode ) ;
1855+ return ( ! NetworkManager . DistributedAuthorityMode && NetworkObject . IsOwnedByServer ) || ( NetworkManager . DistributedAuthorityMode ) ;
18561856 }
18571857 return true ;
18581858 }
@@ -2122,7 +2122,6 @@ internal bool ApplyTransformToNetworkState(ref NetworkTransformState networkStat
21222122 [ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
21232123 private bool CheckForStateChange ( ref NetworkTransformState networkState , bool isSynchronization = false , ulong targetClientId = 0 , bool forceState = false )
21242124 {
2125- var cachedTickRateValue = ( int ) m_CachedNetworkManager . NetworkConfig . TickRate ;
21262125 var flagStates = networkState . FlagStates ;
21272126
21282127 // As long as we are not doing our first synchronization and we are sending unreliable deltas, each
@@ -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 += cachedTickRateValue ;
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 ;
@@ -2374,7 +2374,7 @@ private bool CheckForStateChange(ref NetworkTransformState networkState, bool is
23742374 }
23752375 else // If synchronizing is set, then use the current full position value on the server side
23762376 {
2377- if ( ShouldSynchronizeHalfFloat ( m_CachedNetworkManager , targetClientId ) )
2377+ if ( ShouldSynchronizeHalfFloat ( targetClientId ) )
23782378 {
23792379 // If we have a NetworkDeltaPosition that has a state applied, then we want to determine
23802380 // what needs to be synchronized. For owner authoritative mode, the server side
@@ -2968,7 +2968,7 @@ private void ApplyTeleportingState(NetworkTransformState newState)
29682968 if ( isSynchronization )
29692969 {
29702970 // Need to use NetworkManager vs m_CachedNetworkManager here since we are yet to be spawned
2971- if ( ShouldSynchronizeHalfFloat ( NetworkManager , NetworkManager . LocalClientId ) )
2971+ if ( ShouldSynchronizeHalfFloat ( NetworkManager . LocalClientId ) )
29722972 {
29732973 m_HalfPositionState . HalfVector3 . Axis = newState . NetworkDeltaPosition . HalfVector3 . Axis ;
29742974 m_HalfPositionState . DeltaPosition = newState . DeltaPosition ;
@@ -3321,7 +3321,7 @@ private void OnNetworkStateChanged(NetworkTransformState oldState, NetworkTransf
33213321 }
33223322
33233323 // Get the time when this new state was sent
3324- newState . SentTime = new NetworkTime ( m_CachedNetworkTickRate , newState . NetworkTick ) . Time ;
3324+ newState . SentTime = new NetworkTime ( m_CachedNetworkManager . NetworkTickSystem . TickRate , newState . NetworkTick ) . Time ;
33253325
33263326 if ( LogStateUpdate )
33273327 {
@@ -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 }
@@ -3593,7 +3593,6 @@ protected internal override void InternalOnNetworkPostSpawn()
35933593 internal static InterpolationTypes DefaultInterpolationType ;
35943594
35953595 internal Transform CachedTransform ;
3596- private uint m_CachedNetworkTickRate ;
35973596
35983597 /// <summary>
35993598 /// Create interpolators when first instantiated to avoid memory allocations if the
@@ -3624,7 +3623,6 @@ protected virtual void Awake()
36243623 internal override void InternalOnNetworkPreSpawn ( ref NetworkManager networkManager )
36253624 {
36263625 m_CachedNetworkManager = networkManager ;
3627- m_CachedNetworkTickRate = m_CachedNetworkManager . NetworkTickSystem . TickRate ;
36283626 CachedTransform = transform ;
36293627 base . InternalOnNetworkPreSpawn ( ref networkManager ) ;
36303628 }
@@ -3633,6 +3631,7 @@ internal override void InternalOnNetworkPreSpawn(ref NetworkManager networkManag
36333631 public override void OnNetworkSpawn ( )
36343632 {
36353633 m_ParentedChildren . Clear ( ) ;
3634+ m_CachedNetworkManager = NetworkManager ;
36363635
36373636 Initialize ( ) ;
36383637
@@ -3650,9 +3649,9 @@ private void CleanUpOnDestroyOrDespawn()
36503649#else
36513650 var forUpdate = true ;
36523651#endif
3653- if ( m_CachedNetworkObject )
3652+ if ( m_CachedNetworkObject != null )
36543653 {
3655- m_CachedNetworkManager ? . NetworkTransformRegistration ( m_CachedNetworkObject , forUpdate , false ) ;
3654+ NetworkManager ? . NetworkTransformRegistration ( m_CachedNetworkObject , forUpdate , false ) ;
36563655 }
36573656
36583657 DeregisterForTickUpdate ( this ) ;
@@ -3698,7 +3697,7 @@ protected virtual void OnInitialize(ref NetworkVariable<NetworkTransformState> r
36983697 /// </summary>
36993698 private void ResetInterpolatedStateToCurrentAuthoritativeState ( )
37003699 {
3701- var serverTime = m_CachedNetworkManager . ServerTime . Time ;
3700+ var serverTime = NetworkManager . ServerTime . Time ;
37023701#if COM_UNITY_MODULES_PHYSICS || COM_UNITY_MODULES_PHYSICS2D
37033702 var position = m_UseRigidbodyForMotion ? m_NetworkRigidbodyInternal . GetPosition ( ) : GetSpaceRelativePosition ( ) ;
37043703 var rotation = m_UseRigidbodyForMotion ? m_NetworkRigidbodyInternal . GetRotation ( ) : GetSpaceRelativeRotation ( ) ;
@@ -3720,7 +3719,7 @@ private void ResetInterpolatedStateToCurrentAuthoritativeState()
37203719 }
37213720 private NetworkObject m_CachedNetworkObject ;
37223721 /// <summary>
3723- /// The internal initialization method to allow for internal API adjustments
3722+ /// The internal initialzation method to allow for internal API adjustments
37243723 /// </summary>
37253724 /// <param name="isOwnershipChange"></param>
37263725 private void InternalInitialization ( bool isOwnershipChange = false )
@@ -3732,7 +3731,7 @@ private void InternalInitialization(bool isOwnershipChange = false)
37323731 m_CachedNetworkObject = NetworkObject ;
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
@@ -3910,7 +3909,7 @@ private void DefaultParentChanged()
39103909 m_RotationInterpolator . Clear ( ) ;
39113910
39123911 // Always use NetworkManager here as this can be invoked prior to spawning
3913- var tempTime = new NetworkTime ( NetworkManager . NetworkConfig . TickRate , m_CachedNetworkManager . ServerTime . Tick ) . Time ;
3912+ var tempTime = new NetworkTime ( NetworkManager . NetworkConfig . TickRate , NetworkManager . ServerTime . Tick ) . Time ;
39143913 UpdatePositionInterpolator ( m_InternalCurrentPosition , tempTime , true ) ;
39153914 m_ScaleInterpolator . ResetTo ( m_InternalCurrentScale , tempTime ) ;
39163915 m_RotationInterpolator . ResetTo ( m_InternalCurrentRotation , tempTime ) ;
@@ -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
@@ -4658,13 +4657,13 @@ private void UpdateTransformState()
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 % ( int ) NetworkManager . NetworkConfig . TickRate ) ;
4805+ m_NextTickSync = NetworkManager . ServerTime . Tick + ( s_TickSynchPosition % ( int ) NetworkManager . NetworkConfig . TickRate ) ;
48074806 }
48084807
48094808 private static void RegisterNetworkManagerForTickUpdate ( NetworkManager networkManager )
@@ -4822,14 +4821,14 @@ private static void RegisterNetworkManagerForTickUpdate(NetworkManager networkMa
48224821 /// <param name="networkTransform"></param>
48234822 private static void RegisterForTickUpdate ( NetworkTransform networkTransform )
48244823 {
4825- var networkManager = networkTransform . NetworkManager ;
4826- if ( ! networkManager . DistributedAuthorityMode && ! s_NetworkTickRegistration . ContainsKey ( networkManager ) )
4824+
4825+ if ( ! networkTransform . NetworkManager . DistributedAuthorityMode && ! s_NetworkTickRegistration . ContainsKey ( networkTransform . NetworkManager ) )
48274826 {
4828- s_NetworkTickRegistration . Add ( networkManager , new NetworkTransformTickRegistration ( networkManager ) ) ;
4827+ s_NetworkTickRegistration . Add ( networkTransform . NetworkManager , new NetworkTransformTickRegistration ( networkTransform . NetworkManager ) ) ;
48294828 }
48304829
48314830 networkTransform . RegisterForTickSynchronization ( ) ;
4832- s_NetworkTickRegistration [ networkManager ] . NetworkTransforms . Add ( networkTransform ) ;
4831+ s_NetworkTickRegistration [ networkTransform . NetworkManager ] . NetworkTransforms . Add ( networkTransform ) ;
48334832 }
48344833
48354834 /// <summary>
@@ -4839,17 +4838,16 @@ private static void RegisterForTickUpdate(NetworkTransform networkTransform)
48394838 /// <param name="networkTransform"></param>
48404839 private static void DeregisterForTickUpdate ( NetworkTransform networkTransform )
48414840 {
4842- var networkManager = networkTransform . NetworkManager ;
4843- if ( ! networkManager )
4841+ if ( networkTransform . NetworkManager == null )
48444842 {
48454843 return ;
48464844 }
4847- if ( s_NetworkTickRegistration . ContainsKey ( networkManager ) )
4845+ if ( s_NetworkTickRegistration . ContainsKey ( networkTransform . NetworkManager ) )
48484846 {
4849- s_NetworkTickRegistration [ networkManager ] . NetworkTransforms . Remove ( networkTransform ) ;
4850- if ( ! networkManager . DistributedAuthorityMode && s_NetworkTickRegistration [ networkManager ] . NetworkTransforms . Count == 0 )
4847+ s_NetworkTickRegistration [ networkTransform . NetworkManager ] . NetworkTransforms . Remove ( networkTransform ) ;
4848+ if ( ! networkTransform . NetworkManager . DistributedAuthorityMode && s_NetworkTickRegistration [ networkTransform . NetworkManager ] . NetworkTransforms . Count == 0 )
48514849 {
4852- var registrationEntry = s_NetworkTickRegistration [ networkManager ] ;
4850+ var registrationEntry = s_NetworkTickRegistration [ networkTransform . NetworkManager ] ;
48534851 registrationEntry . Remove ( ) ;
48544852 }
48554853 }
0 commit comments