Skip to content

Commit a32d7e5

Browse files
committed
Use cached NetworkManager in NetworkAnimator
1 parent e1fbce0 commit a32d7e5

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

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

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,7 @@ internal void DeregisterUpdate()
194194
internal NetworkAnimatorStateChangeHandler(NetworkAnimator networkAnimator)
195195
{
196196
m_NetworkAnimator = networkAnimator;
197-
// TODO can we use m_LocalNetworkManager here or other cached var?
198-
m_IsServer = networkAnimator.NetworkManager.IsServer;
197+
m_IsServer = networkAnimator.LocalNetworkManager.IsServer;
199198
NetworkUpdateLoop.RegisterNetworkUpdate(this, NetworkUpdateStage.PreUpdate);
200199
}
201200
}
@@ -280,7 +279,7 @@ public Animator Animator
280279
private Dictionary<int, Dictionary<int, TransitionStateinfo>> m_DestinationStateToTransitioninfo = new Dictionary<int, Dictionary<int, TransitionStateinfo>>();
281280

282281
// Named differently to avoid serialization conflicts with NetworkBehaviour
283-
private NetworkManager m_LocalNetworkManager;
282+
internal NetworkManager LocalNetworkManager;
284283

285284
internal bool DistributedAuthorityMode;
286285

@@ -919,8 +918,8 @@ internal AnimationMessage GetAnimationMessage()
919918
internal override void InternalOnNetworkPreSpawn(ref NetworkManager networkManager)
920919
{
921920
// Save internal state references
922-
m_LocalNetworkManager = networkManager;
923-
DistributedAuthorityMode = m_LocalNetworkManager.DistributedAuthorityMode;
921+
LocalNetworkManager = networkManager;
922+
DistributedAuthorityMode = LocalNetworkManager.DistributedAuthorityMode;
924923
}
925924

926925
/// <inheritdoc/>
@@ -1180,7 +1179,7 @@ internal void CheckForAnimatorChanges()
11801179

11811180
if (m_Animator.runtimeAnimatorController == null)
11821181
{
1183-
if (m_LocalNetworkManager.LogLevel == LogLevel.Developer)
1182+
if (LocalNetworkManager.LogLevel == LogLevel.Developer)
11841183
{
11851184
Debug.LogError($"[{GetType().Name}] Could not find an assigned {nameof(RuntimeAnimatorController)}! Cannot check {nameof(Animator)} for changes in state!");
11861185
}
@@ -1215,9 +1214,9 @@ internal void CheckForAnimatorChanges()
12151214
{
12161215
// Just notify all remote clients and not the local server
12171216
m_TargetGroup.Clear();
1218-
foreach (var clientId in m_LocalNetworkManager.ConnectionManager.ConnectedClientIds)
1217+
foreach (var clientId in LocalNetworkManager.ConnectionManager.ConnectedClientIds)
12191218
{
1220-
if (clientId == m_LocalNetworkManager.LocalClientId || !NetworkObject.Observers.Contains(clientId))
1219+
if (clientId == LocalNetworkManager.LocalClientId || !NetworkObject.Observers.Contains(clientId))
12211220
{
12221221
continue;
12231222
}
@@ -1245,7 +1244,7 @@ private void SendParametersUpdate(RpcParams rpcParams = default, bool sendDirect
12451244
}
12461245
else
12471246
{
1248-
Debug.LogError($"[{name}][Client-{m_LocalNetworkManager.LocalClientId}] Attempting to send parameter updates but not the owner!");
1247+
Debug.LogError($"[{name}][Client-{LocalNetworkManager.LocalClientId}] Attempting to send parameter updates but not the owner!");
12491248
}
12501249
}
12511250
else
@@ -1495,12 +1494,12 @@ internal void UpdateAnimationState(AnimationState animationState)
14951494
// Cross fade from the current to the destination state for the transitions duration while starting at the server's current normalized time of the transition
14961495
m_Animator.CrossFade(transitionStateInfo.DestinationState, transitionStateInfo.TransitionDuration, transitionStateInfo.Layer, 0.0f, animationState.NormalizedTime);
14971496
}
1498-
else if (m_LocalNetworkManager.LogLevel == LogLevel.Developer)
1497+
else if (LocalNetworkManager.LogLevel == LogLevel.Developer)
14991498
{
15001499
NetworkLog.LogWarning($"Current State Hash ({currentState.fullPathHash}) != AnimationState.StateHash ({animationState.StateHash})");
15011500
}
15021501
}
1503-
else if (m_LocalNetworkManager.LogLevel == LogLevel.Developer)
1502+
else if (LocalNetworkManager.LogLevel == LogLevel.Developer)
15041503
{
15051504
NetworkLog.LogError($"[DestinationState To Transition Info] Layer ({animationState.Layer}) sub-table does not contain destination state ({animationState.DestinationStateHash})!");
15061505
}
@@ -1543,7 +1542,7 @@ private unsafe void SendServerParametersUpdateRpc(ParametersUpdateMessage parame
15431542
return;
15441543
}
15451544
UpdateParameters(ref parametersUpdate);
1546-
var connectedClientIds = m_LocalNetworkManager.ConnectionManager.ConnectedClientIds;
1545+
var connectedClientIds = LocalNetworkManager.ConnectionManager.ConnectedClientIds;
15471546
if (connectedClientIds.Count <= (IsHost ? 2 : 1))
15481547
{
15491548
return;
@@ -1609,7 +1608,7 @@ private void SendServerAnimStateRpc(AnimationMessage animationMessage, RpcParams
16091608
UpdateAnimationState(animationState);
16101609
}
16111610

1612-
var connectedClientIds = m_LocalNetworkManager.ConnectionManager.ConnectedClientIds;
1611+
var connectedClientIds = LocalNetworkManager.ConnectionManager.ConnectedClientIds;
16131612
if (connectedClientIds.Count <= (IsHost ? 2 : 1))
16141613
{
16151614
return;
@@ -1656,7 +1655,7 @@ private void ProcessAnimStates(AnimationMessage animationMessage)
16561655
{
16571656
if (HasAuthority)
16581657
{
1659-
if (m_LocalNetworkManager.LogLevel == LogLevel.Developer)
1658+
if (LocalNetworkManager.LogLevel == LogLevel.Developer)
16601659
{
16611660
var hostOrOwner = DistributedAuthorityMode ? "Owner" : "Host";
16621661
var clientServerOrDAMode = DistributedAuthorityMode ? "distributed authority" : "client-server";
@@ -1681,7 +1680,7 @@ internal void SendServerAnimTriggerRpc(AnimationTriggerMessage animationTriggerM
16811680
// Ignore if a non-owner sent this.
16821681
if (rpcParams.Receive.SenderClientId != OwnerClientId)
16831682
{
1684-
if (m_LocalNetworkManager.LogLevel == LogLevel.Developer)
1683+
if (LocalNetworkManager.LogLevel == LogLevel.Developer)
16851684
{
16861685
NetworkLog.LogWarning($"[Owner Authoritative] Detected the a non-authoritative client is sending the server animation trigger updates. If you recently changed ownership of the {name} object, then this could be the reason.");
16871686
}
@@ -1691,7 +1690,7 @@ internal void SendServerAnimTriggerRpc(AnimationTriggerMessage animationTriggerM
16911690
// set the trigger locally on the server
16921691
InternalSetTrigger(animationTriggerMessage.Hash, animationTriggerMessage.IsTriggerSet);
16931692

1694-
var connectedClientIds = m_LocalNetworkManager.ConnectionManager.ConnectedClientIds;
1693+
var connectedClientIds = LocalNetworkManager.ConnectionManager.ConnectedClientIds;
16951694

16961695
m_TargetGroup.Clear();
16971696
foreach (var clientId in connectedClientIds)

0 commit comments

Comments
 (0)