Skip to content

Commit da03692

Browse files
committed
Revert "Merge branch 'chore/simplify-accessors-network-transform' into chore/simplify-accessors-network-behaviour"
This reverts commit 26e9cbc, reversing changes made to d0284d7. # Conflicts: # com.unity.netcode.gameobjects/CHANGELOG.md
1 parent 76750dd commit da03692

File tree

1 file changed

+37
-36
lines changed

1 file changed

+37
-36
lines changed

com.unity.netcode.gameobjects/Runtime/Components/NetworkTransform.cs

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)