From bde2c665ce2f578ec979bac33411cb0987d3198a Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Wed, 13 Nov 2024 16:47:21 -0600 Subject: [PATCH 01/19] update Provide users with a way to disable updating changes to specific parameters. --- .../Runtime/Components/NetworkAnimator.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 7f2c4ae23a..284f12554f 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -521,6 +521,7 @@ protected virtual bool OnIsServerAuthoritative() private unsafe struct AnimatorParamCache { + internal bool Exclude; internal int Hash; internal int Type; internal fixed byte Value[4]; // this is a max size of 4 bytes @@ -1064,6 +1065,11 @@ private unsafe bool CheckParametersChanged() { ref var cacheValue = ref UnsafeUtility.ArrayElementAsRef(m_CachedAnimatorParameters.GetUnsafePtr(), i); + if (cacheValue.Exclude) + { + continue; + } + // If a parameter gets controlled by a curve during runtime after initialization of NetworkAnimator // then ignore changes to this parameter. We are not removing the parameter in the event that // it no longer is controlled by a curve. @@ -1562,6 +1568,32 @@ public void ResetTrigger(int hash) { SetTrigger(hash, false); } + + /// + /// Allows for the enabling or disabling the synchronization of a specific + /// parameter. + /// + /// name of the parameter + /// whether to enable or disable synchronizing it + public void ToggleParameterSync(string parameterName, bool enable) + { + var serverAuthoritative = OnIsServerAuthoritative(); + if (!IsSpawned || serverAuthoritative && IsServer || !serverAuthoritative && IsOwner) + { + var hash32 = Animator.StringToHash(parameterName); + + for (int i = 0; i < m_CachedAnimatorParameters.Length; i++) + { + var cachedParameter = m_CachedAnimatorParameters[i]; + if (cachedParameter.Hash == hash32) + { + cachedParameter.Exclude = !enable; + m_CachedAnimatorParameters[i] = cachedParameter; + break; + } + } + } + } } } #endif // COM_UNITY_MODULES_ANIMATION From aaf27e8617d6b5a0844cb499d95cbda7af1f3f3b Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Wed, 13 Nov 2024 21:16:58 -0600 Subject: [PATCH 02/19] update Don't include excluded parameters during initial synchronization. --- .../Runtime/Components/NetworkAnimator.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 284f12554f..1b8d294a47 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -1126,6 +1126,12 @@ private unsafe void WriteParameters(ref FastBufferWriter writer) foreach (var parameterIndex in m_ParametersToUpdate) { ref var cacheValue = ref UnsafeUtility.ArrayElementAsRef(m_CachedAnimatorParameters.GetUnsafePtr(), parameterIndex); + + if (cacheValue.Exclude) + { + continue; + } + var hash = cacheValue.Hash; BytePacker.WriteValuePacked(writer, (uint)parameterIndex); if (cacheValue.Type == AnimationParamEnumWrapper.AnimatorControllerParameterInt) From d6846434ba68967f706dd4e61aaea98dbd75370d Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Wed, 6 Aug 2025 14:34:23 -0500 Subject: [PATCH 03/19] update Adding the ability to select server or owner authority mode via the inspector view. --- .../Runtime/Components/NetworkAnimator.cs | 44 +++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 75be520bba..733bb8a1bc 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -200,6 +200,35 @@ internal class TransitionStateinfo public int TransitionIndex; } + /// + /// Determines if the server or client owner pushes animation state updates. + /// + public enum AuthorityModes + { + /// + /// Server pushes animator state updates. + /// + Server, + /// + /// Client owner pushes animator state updates. + /// + Owner, + } + + + /// + /// Determines whether this instance will have state updates pushed by the server or the client owner. + /// + /// +#if MULTIPLAYER_SERVICES_SDK_INSTALLED + [Tooltip("Selects who has authority (sends state updates) over the instance. When the network topology is set to distributed authority, this always defaults to owner authority. If server (the default), then only server-side adjustments to the " + + " instance will be synchronized with clients. If owner (or client), then only the owner-side adjustments to the instance will be synchronized with both the server and other clients.")] +#else + [Tooltip("Selects who has authority (sends state updates) over the instance. If server (the default), then only server-side adjustments to the instance will be synchronized with clients. If owner (or client), " + + "then only the owner-side adjustments to the instance will be synchronized with both the server and other clients.")] +#endif + public AuthorityModes AuthorityMode; + /// /// Used to build the destination state to transition info table /// @@ -484,6 +513,9 @@ public void NetworkSerialize(BufferSerializer serializer) where T : IReade [SerializeField] private Animator m_Animator; + /// + /// The associated with this instance. + /// public Animator Animator { get { return m_Animator; } @@ -493,13 +525,19 @@ public Animator Animator } } - internal bool IsServerAuthoritative() + /// + /// Determines whether the is or based on the field. + /// Optionally, you can still derive from and override the method. + /// + /// or + public bool IsServerAuthoritative() { return OnIsServerAuthoritative(); } /// - /// Override this method and return false to switch to owner authoritative mode. + /// Override this method and return false to switch to owner authoritative mode.
+ /// Alternately, you can update the field within the inspector view to select the authority mode. ///
/// /// When using a distributed authority network topology, this will default to @@ -507,7 +545,7 @@ internal bool IsServerAuthoritative() /// protected virtual bool OnIsServerAuthoritative() { - return NetworkManager ? !NetworkManager.DistributedAuthorityMode : true; + return NetworkManager && NetworkManager.DistributedAuthorityMode ? true : AuthorityMode == AuthorityModes.Server; } private int[] m_TransitionHash; From d338fdb0e5a84d499ff096df8559a11b17f577ee Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Wed, 6 Aug 2025 16:23:25 -0500 Subject: [PATCH 04/19] update - wip Work in progress. --- .../Editor/HiddenScriptEditor.cs | 8 ++-- .../Editor/NetworkAnimatorEditor.cs | 48 +++++++++++++++++++ .../Editor/NetworkAnimatorEditor.cs.meta | 2 + .../Runtime/Components/NetworkAnimator.cs | 7 +++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs create mode 100644 com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs.meta diff --git a/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs b/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs index f4a77abc4c..a58d9aafce 100644 --- a/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs +++ b/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs @@ -155,11 +155,11 @@ public override void OnInspectorGUI() /// /// Internal use. Hides the script field for NetworkAnimator. /// - [CustomEditor(typeof(NetworkAnimator), true)] - public class NetworkAnimatorEditor : HiddenScriptEditor - { + //[CustomEditor(typeof(NetworkAnimator), true)] + //public class NetworkAnimatorEditor : HiddenScriptEditor + //{ - } + //} #endif #if COM_UNITY_MODULES_PHYSICS diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs new file mode 100644 index 0000000000..6a3d66034f --- /dev/null +++ b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs @@ -0,0 +1,48 @@ +using Unity.Netcode.Components; +using UnityEditor; +//using UnityEngine; + +namespace Unity.Netcode.Editor +{ + /// + /// The for + /// + [CustomEditor(typeof(NetworkAnimator), true)] + [CanEditMultipleObjects] + public class NetworkAnimatorEditor : NetcodeEditorBase + { + + private SerializedProperty m_AuthorityMode; + private SerializedProperty m_Animator; + + public override void OnEnable() + { + m_AuthorityMode = serializedObject.FindProperty(nameof(NetworkAnimator.AuthorityMode)); + + m_Animator = serializedObject.FindProperty("m_Animator"); + } + + private void DisplayNetworkAnimatorProperties() + { + var networkAnimator = target as NetworkAnimator; + EditorGUILayout.PropertyField(m_AuthorityMode); + EditorGUILayout.PropertyField(m_Animator); + if (networkAnimator.Animator != null) + { + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Animator Parameters", EditorStyles.boldLabel); + { + // Add parameter list here + } + } + } + + public override void OnInspectorGUI() + { + var networkAnimator = target as NetworkAnimator; + void SetExpanded(bool expanded) { networkAnimator.NetworkAnimatorExpanded = expanded; } + DrawFoldOutGroup(networkAnimator.GetType(), DisplayNetworkAnimatorProperties, networkAnimator.NetworkAnimatorExpanded, SetExpanded); + base.OnInspectorGUI(); + } + } +} diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs.meta b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs.meta new file mode 100644 index 0000000000..f3adbfd688 --- /dev/null +++ b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3ab75768bda56e545a8ebd0324eecbaf \ No newline at end of file diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 733bb8a1bc..7ede376d50 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -188,6 +188,12 @@ internal NetworkAnimatorStateChangeHandler(NetworkAnimator networkAnimator) [AddComponentMenu("Netcode/Network Animator")] public class NetworkAnimator : NetworkBehaviour, ISerializationCallbackReceiver { +#if UNITY_EDITOR + [HideInInspector] + [SerializeField] + internal bool NetworkAnimatorExpanded; +#endif + [Serializable] internal class TransitionStateinfo { @@ -511,6 +517,7 @@ public void NetworkSerialize(BufferSerializer serializer) where T : IReade } } + [Tooltip("The animator that this NetworkAnimator component will be synchronizing.")] [SerializeField] private Animator m_Animator; /// From 0fe48b28fd14a4ab1d6a96813c39dd4acad394ca Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Wed, 6 Aug 2025 16:24:03 -0500 Subject: [PATCH 05/19] update Test project manual tests for animation (of which some are used for integration testing). --- .../AnimatedCubeController.cs | 15 +- .../NetworkAnimatorServerOwnerTest.unity | 112 ++++++--- .../NetworkAnimatorTestPrefab.prefab | 221 +++++++++++++++--- 3 files changed, 267 insertions(+), 81 deletions(-) diff --git a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/AnimatedCubeController.cs b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/AnimatedCubeController.cs index 7898adb47b..5fcf73233b 100644 --- a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/AnimatedCubeController.cs +++ b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/AnimatedCubeController.cs @@ -1,4 +1,3 @@ -using System; using System.Collections; using Unity.Netcode; using Unity.Netcode.Components; @@ -12,19 +11,11 @@ public class AnimatedCubeController : NetworkBehaviour private Animator m_Animator; private bool m_Rotate; private NetworkAnimator m_NetworkAnimator; - private bool m_IsServerAuthoritative = true; + private bool m_IsServerAuthoritative => m_NetworkAnimator ? m_NetworkAnimator.IsServerAuthoritative() : true; private void DetermineNetworkAnimatorComponentType() { m_NetworkAnimator = GetComponent(); - if (m_NetworkAnimator != null) - { - m_IsServerAuthoritative = m_NetworkAnimator.GetType() != typeof(OwnerNetworkAnimator); - } - else - { - throw new Exception($"{nameof(AnimatedCubeController)} requires that it is paired with either a {nameof(NetworkAnimator)} or {nameof(OwnerNetworkAnimator)}. Neither of the two components were found!"); - } } public override void OnNetworkSpawn() @@ -136,8 +127,8 @@ private IEnumerator TestAnimatorRoutine() counter = 0.0f; while (counter < 100) { - m_Animator.SetFloat("TestFloat", UnityEngine.Random.Range(0.0f, 100.0f)); - m_Animator.SetInteger("TestInt", UnityEngine.Random.Range(0, 100)); + m_Animator.SetFloat("TestFloat", Random.Range(0.0f, 100.0f)); + m_Animator.SetInteger("TestInt", Random.Range(0, 100)); counter++; yield return waitForSeconds; } diff --git a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorServerOwnerTest.unity b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorServerOwnerTest.unity index efd820815d..568acb89e8 100644 --- a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorServerOwnerTest.unity +++ b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorServerOwnerTest.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 10 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -38,13 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -67,9 +66,6 @@ LightmapSettings: m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 m_ReflectionCompression: 2 m_MixedBakeMode: 2 m_BakeBackend: 1 @@ -104,7 +100,7 @@ NavMeshSettings: serializedVersion: 2 m_ObjectHideFlags: 0 m_BuildSettings: - serializedVersion: 2 + serializedVersion: 3 agentTypeID: 0 agentRadius: 0.5 agentHeight: 2 @@ -117,7 +113,7 @@ NavMeshSettings: cellSize: 0.16666667 manualTileSize: 0 tileSize: 256 - accuratePlacement: 0 + buildHeightMesh: 0 maxJobWorkers: 0 preserveTilesOutsideBounds: 0 debug: @@ -153,21 +149,14 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3} m_Name: m_EditorClassIdentifier: - RunInBackground: 1 - LogLevel: 1 + NetworkManagerExpanded: 0 NetworkConfig: ProtocolVersion: 0 NetworkTransport: {fileID: 57527694} PlayerPrefab: {fileID: 3214090169675393154, guid: 978fc8cd63a1294438ebf3b352814970, type: 3} - NetworkPrefabs: - - Override: 0 - Prefab: {fileID: 3214090169675393154, guid: 978fc8cd63a1294438ebf3b352814970, - type: 3} - SourcePrefabToOverride: {fileID: 442217489085244684, guid: 5eca8a21314fe4278ba2571c289a9773, - type: 3} - SourceHashToOverride: 0 - OverridingTargetPrefab: {fileID: 0} + Prefabs: + NetworkPrefabsLists: [] TickRate: 30 ClientConnectionBufferTimeout: 10 ConnectionApproval: 0 @@ -181,8 +170,22 @@ MonoBehaviour: NetworkIdRecycleDelay: 120 RpcHashSize: 0 LoadSceneTimeOut: 120 - SpawnTimeout: 1 + SpawnTimeout: 10 EnableNetworkLogs: 1 + NetworkTopology: 0 + UseCMBService: 0 + AutoSpawnPlayerPrefabClientSide: 1 + NetworkProfilingMetrics: 1 + OldPrefabList: + - Override: 0 + Prefab: {fileID: 3214090169675393154, guid: 978fc8cd63a1294438ebf3b352814970, + type: 3} + SourcePrefabToOverride: {fileID: 442217489085244684, guid: 5eca8a21314fe4278ba2571c289a9773, + type: 3} + SourceHashToOverride: 0 + OverridingTargetPrefab: {fileID: 0} + RunInBackground: 1 + LogLevel: 1 --- !u!4 &57527693 Transform: m_ObjectHideFlags: 0 @@ -190,13 +193,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 57527690} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -4.4, y: 0, z: 3.53} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &57527694 MonoBehaviour: @@ -211,6 +214,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ProtocolType: 0 + m_UseWebSockets: 0 + m_UseEncryption: 0 m_MaxPacketQueueSize: 128 m_MaxPayloadSize: 80000 m_HeartbeatTimeoutMS: 500 @@ -220,7 +225,7 @@ MonoBehaviour: ConnectionData: Address: 127.0.0.1 Port: 7777 - ServerListenAddress: + ServerListenAddress: 127.0.0.1 DebugSimulator: PacketDelayMS: 0 PacketJitterMS: 0 @@ -234,8 +239,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 84683368} - - component: {fileID: 84683367} - component: {fileID: 84683366} + - component: {fileID: 84683367} m_Layer: 0 m_Name: Stats m_TagString: Untagged @@ -256,9 +261,18 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: GlobalObjectIdHash: 3133660421 + InScenePlacedSourceGlobalObjectIdHash: 0 + DeferredDespawnTick: 0 + Ownership: 1 AlwaysReplicateAsRoot: 0 + SynchronizeTransform: 1 + ActiveSceneSynchronization: 0 + SceneMigrationSynchronization: 0 + SpawnWithObservers: 1 DontDestroyWithOwner: 0 AutoObjectParentSync: 1 + SyncOwnerTransformWhenParented: 1 + AllowOwnerToParent: 0 --- !u!114 &84683367 MonoBehaviour: m_ObjectHideFlags: 0 @@ -271,6 +285,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: cb5f3e55f5dd247129d8a4979b80ebbb, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 m_ClientServerToggle: {fileID: 0} m_TrackSceneEvents: 0 --- !u!4 &84683368 @@ -280,13 +295,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 84683365} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 318.45444, y: 110.697815, z: 216.79077} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &146283178 GameObject: @@ -319,7 +334,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 343841036} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0} m_AnchorMax: {x: 0.5, y: 0} @@ -444,7 +458,9 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 1 m_TargetDisplay: 0 @@ -462,7 +478,6 @@ RectTransform: m_Children: - {fileID: 146283179} m_Father: {fileID: 0} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -529,13 +544,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 809184351} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &825254415 GameObject: @@ -562,9 +577,8 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 825254415} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 11 m_Type: 1 - m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 @@ -614,8 +628,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &825254417 Transform: m_ObjectHideFlags: 0 @@ -623,13 +641,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 825254415} + serializedVersion: 2 m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} --- !u!224 &1537133403 stripped RectTransform: @@ -677,9 +695,17 @@ Camera: m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 m_SensorSize: {x: 36, y: 24} m_LensShift: {x: 0, y: 0} - m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -713,13 +739,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1543554891} + serializedVersion: 2 m_LocalRotation: {x: 0.28182787, y: -0, z: -0, w: 0.959465} m_LocalPosition: {x: 5.7, y: 90, z: -136} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 32.739, y: 0, z: 0} --- !u!1 &1740491936 GameObject: @@ -797,7 +823,9 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 @@ -816,7 +844,6 @@ RectTransform: - {fileID: 1820369379} - {fileID: 1537133403} m_Father: {fileID: 0} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -828,6 +855,7 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 1740491940} m_Modifications: - target: {fileID: 2848221156307247792, guid: 3200770c16e3b2b4ebe7f604154faac7, @@ -962,6 +990,9 @@ PrefabInstance: objectReference: {fileID: 11400000, guid: 4a3cdce12e998384f8aca207b5a2c700, type: 2} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 3200770c16e3b2b4ebe7f604154faac7, type: 3} --- !u!224 &1820369379 stripped RectTransform: @@ -974,6 +1005,7 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 1740491940} m_Modifications: - target: {fileID: 6633621479308595792, guid: d725b5588e1b956458798319e6541d84, @@ -1087,4 +1119,18 @@ PrefabInstance: value: ConnectionModeButtons objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: d725b5588e1b956458798319e6541d84, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1543554894} + - {fileID: 825254417} + - {fileID: 57527693} + - {fileID: 343841036} + - {fileID: 809184354} + - {fileID: 1740491940} + - {fileID: 84683368} diff --git a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab index 293a5c28f9..438caf1913 100644 --- a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab +++ b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab @@ -26,6 +26,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 344968812738254812} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 10, y: 10, z: 10} @@ -34,7 +35,6 @@ Transform: - {fileID: 6945271965867870025} - {fileID: 7346803634269932765} m_Father: {fileID: 3078684837582866037} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1862129067553351562 MeshFilter: @@ -61,6 +61,9 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -94,9 +97,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 344968812738254812} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1.0000002, y: 1, z: 1.0000002} m_Center: {x: 0.0000019073493, y: 0.000000007450581, z: -0.000001907349} --- !u!1 &2187136729444773472 @@ -125,13 +136,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2187136729444773472} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.505} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2505406658094773853} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &3821723076754617548 MeshFilter: @@ -158,6 +169,9 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -191,9 +205,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2187136729444773472} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &2963963144167575062 @@ -227,7 +249,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3214090169133903717} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -287,7 +308,7 @@ GameObject: - component: {fileID: 3078684837582866037} - component: {fileID: 3078684837575715027} - component: {fileID: 5295167409644547614} - - component: {fileID: 3632991713004262889} + - component: {fileID: 6991069935266812612} m_Layer: 0 m_Name: NetworkAnimatedCube-Owner m_TagString: Untagged @@ -302,6 +323,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3078684837583100501} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 15, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -309,11 +331,10 @@ Transform: m_Children: - {fileID: 7635925556881204871} m_Father: {fileID: 3214090169675393152} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &3078684837575715027 Animator: - serializedVersion: 4 + serializedVersion: 7 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -327,10 +348,12 @@ Animator: m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 + m_AnimatePhysics: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 --- !u!114 &5295167409644547614 MonoBehaviour: m_ObjectHideFlags: 0 @@ -343,8 +366,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b322be05414199349ae9d1aea28228a7, type: 3} m_Name: m_EditorClassIdentifier: - TestIterations: 10 ---- !u!114 &3632991713004262889 + ShowTopMostFoldoutHeaderGroup: 1 +--- !u!114 &6991069935266812612 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -353,28 +376,54 @@ MonoBehaviour: m_GameObject: {fileID: 3078684837583100501} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f6a3556fb5f3bee4e8a0fb88acff87ff, type: 3} + m_Script: {fileID: 11500000, guid: e8d0727d5ae3244e3b569694d3912374, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 + AuthorityMode: 1 TransitionStateInfoList: - - Layer: 0 + - IsCrossFadeExit: 0 + Layer: 0 OriginatingState: 2081823275 DestinationState: -570305638 TransitionDuration: 0.30227518 TriggerNameHash: 1033918907 TransitionIndex: 1 - - Layer: 0 + - IsCrossFadeExit: 0 + Layer: 0 OriginatingState: 2081823275 DestinationState: -1509639022 TransitionDuration: 0.25 TriggerNameHash: 1033918907 TransitionIndex: 2 - - Layer: 1 + - IsCrossFadeExit: 0 + Layer: 1 OriginatingState: 2081823275 DestinationState: -623385122 TransitionDuration: 2.2832582 TriggerNameHash: -623385122 TransitionIndex: 0 + - IsCrossFadeExit: 0 + Layer: 3 + OriginatingState: 2081823275 + DestinationState: -1829531531 + TransitionDuration: 0.25 + TriggerNameHash: 1080829965 + TransitionIndex: 0 + - IsCrossFadeExit: 0 + Layer: 3 + OriginatingState: 2081823275 + DestinationState: 705160537 + TransitionDuration: 0.25 + TriggerNameHash: 1080829965 + TransitionIndex: 1 + - IsCrossFadeExit: 0 + Layer: 3 + OriginatingState: 2081823275 + DestinationState: 801385362 + TransitionDuration: 0.25 + TriggerNameHash: 1080829965 + TransitionIndex: 2 m_Animator: {fileID: 3078684837575715027} --- !u!1 &3214090169133903718 GameObject: @@ -412,7 +461,6 @@ RectTransform: - {fileID: 8890957386270744200} - {fileID: 4304100640823132132} m_Father: {fileID: 3214090169675393152} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -436,7 +484,9 @@ Canvas: m_OverrideSorting: 0 m_OverridePixelPerfect: 0 m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 @@ -506,6 +556,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3214090169675393154} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -515,7 +566,6 @@ Transform: - {fileID: 3078684837582866037} - {fileID: 3604323723684300772} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &3214090169675393153 MonoBehaviour: @@ -529,10 +579,19 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3} m_Name: m_EditorClassIdentifier: - GlobalObjectIdHash: 951099334 + GlobalObjectIdHash: 3334901199 + InScenePlacedSourceGlobalObjectIdHash: 0 + DeferredDespawnTick: 0 + Ownership: 1 AlwaysReplicateAsRoot: 0 + SynchronizeTransform: 1 + ActiveSceneSynchronization: 0 + SceneMigrationSynchronization: 1 + SpawnWithObservers: 1 DontDestroyWithOwner: 0 AutoObjectParentSync: 1 + SyncOwnerTransformWhenParented: 1 + AllowOwnerToParent: 0 --- !u!114 &5628721071472145353 MonoBehaviour: m_ObjectHideFlags: 0 @@ -545,6 +604,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 65054225619821f498f40221095d527e, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 m_ServerAuthText: {fileID: 554345019093650043} m_OwnerAuthText: {fileID: 6408045601871479648} --- !u!114 &2564457647300903827 @@ -559,6 +619,21 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 + NetworkTransformExpanded: 0 + AutoOwnerAuthorityTickOffset: 1 + PositionInterpolationType: 0 + RotationInterpolationType: 0 + ScaleInterpolationType: 0 + PositionLerpSmoothing: 1 + PositionMaxInterpolationTime: 0.1 + RotationLerpSmoothing: 1 + RotationMaxInterpolationTime: 0.1 + ScaleLerpSmoothing: 1 + ScaleMaxInterpolationTime: 0.1 + AuthorityMode: 0 + TickSyncChildren: 0 + UseUnreliableDeltas: 0 SyncPositionX: 1 SyncPositionY: 1 SyncPositionZ: 1 @@ -571,8 +646,13 @@ MonoBehaviour: PositionThreshold: 0.001 RotAngleThreshold: 0.01 ScaleThreshold: 0.01 + UseQuaternionSynchronization: 0 + UseQuaternionCompression: 0 + UseHalfFloatPrecision: 0 InLocalSpace: 0 + SwitchTransformSpaceWhenParented: 0 Interpolate: 0 + SlerpPosition: 0 --- !u!1 &3953046479900177945 GameObject: m_ObjectHideFlags: 0 @@ -599,6 +679,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3953046479900177945} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: -15, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} @@ -606,11 +687,10 @@ Transform: m_Children: - {fileID: 2505406658094773853} m_Father: {fileID: 3214090169675393152} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &6047057957339659638 Animator: - serializedVersion: 4 + serializedVersion: 7 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -624,10 +704,12 @@ Animator: m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 + m_AnimatePhysics: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 --- !u!114 &8104648428997222210 MonoBehaviour: m_ObjectHideFlags: 0 @@ -640,7 +722,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b322be05414199349ae9d1aea28228a7, type: 3} m_Name: m_EditorClassIdentifier: - TestIterations: 20 + ShowTopMostFoldoutHeaderGroup: 1 --- !u!114 &1245349943772079751 MonoBehaviour: m_ObjectHideFlags: 0 @@ -653,25 +735,51 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e8d0727d5ae3244e3b569694d3912374, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 + AuthorityMode: 0 TransitionStateInfoList: - - Layer: 0 + - IsCrossFadeExit: 0 + Layer: 0 OriginatingState: 2081823275 DestinationState: -570305638 TransitionDuration: 0.30227518 TriggerNameHash: 1033918907 TransitionIndex: 1 - - Layer: 0 + - IsCrossFadeExit: 0 + Layer: 0 OriginatingState: 2081823275 DestinationState: -1509639022 TransitionDuration: 0.25 TriggerNameHash: 1033918907 TransitionIndex: 2 - - Layer: 1 + - IsCrossFadeExit: 0 + Layer: 1 OriginatingState: 2081823275 DestinationState: -623385122 TransitionDuration: 2.2832582 TriggerNameHash: -623385122 TransitionIndex: 0 + - IsCrossFadeExit: 0 + Layer: 3 + OriginatingState: 2081823275 + DestinationState: -1829531531 + TransitionDuration: 0.25 + TriggerNameHash: 1080829965 + TransitionIndex: 0 + - IsCrossFadeExit: 0 + Layer: 3 + OriginatingState: 2081823275 + DestinationState: 705160537 + TransitionDuration: 0.25 + TriggerNameHash: 1080829965 + TransitionIndex: 1 + - IsCrossFadeExit: 0 + Layer: 3 + OriginatingState: 2081823275 + DestinationState: 801385362 + TransitionDuration: 0.25 + TriggerNameHash: 1080829965 + TransitionIndex: 2 m_Animator: {fileID: 6047057957339659638} --- !u!1 &4033769488171516769 GameObject: @@ -699,13 +807,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4033769488171516769} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -0.514} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7635925556881204871} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &6303887162499072930 MeshFilter: @@ -732,6 +840,9 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -765,9 +876,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4033769488171516769} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &4988239203845480744 @@ -796,13 +915,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4988239203845480744} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.505} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 7635925556881204871} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &6969857922933789850 MeshFilter: @@ -829,6 +948,9 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -862,9 +984,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4988239203845480744} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &8225275286638841897 @@ -898,7 +1028,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3214090169133903717} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -978,7 +1107,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3214090169133903717} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1053,6 +1181,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8656650671630400802} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 10, y: 10, z: 10} @@ -1061,7 +1190,6 @@ Transform: - {fileID: 4145180303732600870} - {fileID: 1514700077442365156} m_Father: {fileID: 3604323723684300772} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &4441112472850329336 MeshFilter: @@ -1088,6 +1216,9 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1121,9 +1252,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8656650671630400802} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1.0000002, y: 1, z: 1.0000002} m_Center: {x: 0.0000019073493, y: 0.000000007450581, z: -0.000001907349} --- !u!1 &8778627084610397836 @@ -1152,13 +1291,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8778627084610397836} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -0.514} m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2505406658094773853} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &5462393744046406360 MeshFilter: @@ -1185,6 +1324,9 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1218,9 +1360,17 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8778627084610397836} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} --- !u!1 &9079811648883086489 @@ -1254,7 +1404,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 3214090169133903717} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} From 00525f7ef57a1381a35e39b17277e7d396ec69e5 Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Thu, 7 Aug 2025 13:03:56 -0500 Subject: [PATCH 06/19] update Finalizing editor inspector view UI for excluding animator properties. Added some additional logic to NetworkAnimator. Added first test that verifies excluding parameters works. --- .../Editor/NetworkAnimatorEditor.cs | 36 ++++++++-- .../Runtime/Components/NetworkAnimator.cs | 52 ++++++++++++-- .../Assets/DefaultNetworkPrefabs.asset | 18 +++++ .../CubeAnimatorController.controller | 6 ++ .../Runtime/Animation/AnimatorTestHelper.cs | 10 +++ .../Runtime/Animation/NetworkAnimatorTests.cs | 69 +++++++++++++++++++ .../Animation/Resources/AnimatorObject.prefab | 52 ++++++++++++++ .../Resources/OwnerAnimatorObject.prefab | 52 ++++++++++++++ .../Resources/PlayerCheerOwnerAuth.prefab | 17 +++++ .../Resources/PlayerCheerServerAuth.prefab | 17 +++++ 10 files changed, 321 insertions(+), 8 deletions(-) diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs index 6a3d66034f..4c6ae26c12 100644 --- a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs +++ b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs @@ -1,6 +1,7 @@ +using System.Linq; using Unity.Netcode.Components; using UnityEditor; -//using UnityEngine; +using UnityEngine; namespace Unity.Netcode.Editor { @@ -11,7 +12,7 @@ namespace Unity.Netcode.Editor [CanEditMultipleObjects] public class NetworkAnimatorEditor : NetcodeEditorBase { - + private static float s_MaxRowWidth = EditorGUIUtility.labelWidth + EditorGUIUtility.fieldWidth + 5; private SerializedProperty m_AuthorityMode; private SerializedProperty m_Animator; @@ -30,10 +31,37 @@ private void DisplayNetworkAnimatorProperties() if (networkAnimator.Animator != null) { EditorGUILayout.Space(); - EditorGUILayout.LabelField("Animator Parameters", EditorStyles.boldLabel); + networkAnimator.AnimatorParametersExpanded = EditorGUILayout.BeginFoldoutHeaderGroup(networkAnimator.AnimatorParametersExpanded, $"Animator Parameters to Synchronize"); { - // Add parameter list here + var parameters = networkAnimator.Animator.parameters; + networkAnimator.AnimatorParameterEntryTable.Clear(); + foreach (var parameterEntry in networkAnimator.AnimatorParameterEntries) + { + if (!networkAnimator.AnimatorParameterEntryTable.ContainsKey(parameterEntry.NameHash)) + { + networkAnimator.AnimatorParameterEntryTable.Add(parameterEntry.NameHash, parameterEntry); + } + } + if (networkAnimator.AnimatorParametersExpanded) + { + foreach (var parameter in parameters) + { + if (!networkAnimator.AnimatorParameterEntryTable.ContainsKey(parameter.nameHash)) + { + networkAnimator.AnimatorParameterEntryTable.Add(parameter.nameHash, new NetworkAnimator.AnimatorParameterEntry(parameter)); + } + var parameterEntry = networkAnimator.AnimatorParameterEntryTable[parameter.nameHash]; + parameterEntry.Synchronize = EditorGUILayout.ToggleLeft($"{parameterEntry.Name} ({parameterEntry.ParameterType.ToString()})", parameterEntry.Synchronize); + parameterEntry.ParameterType = parameter.type; + parameterEntry.Name = parameter.name; + parameterEntry.NameHash = parameter.nameHash; + networkAnimator.AnimatorParameterEntryTable[parameter.nameHash] = parameterEntry; + } + } + networkAnimator.AnimatorParameterEntries = networkAnimator.AnimatorParameterEntryTable.Values.ToList(); } + + EditorGUILayout.EndFoldoutHeaderGroup(); } } diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 7ede376d50..06d8afcab1 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -221,14 +221,13 @@ public enum AuthorityModes Owner, } - /// /// Determines whether this instance will have state updates pushed by the server or the client owner. /// /// #if MULTIPLAYER_SERVICES_SDK_INSTALLED - [Tooltip("Selects who has authority (sends state updates) over the instance. When the network topology is set to distributed authority, this always defaults to owner authority. If server (the default), then only server-side adjustments to the " + - " instance will be synchronized with clients. If owner (or client), then only the owner-side adjustments to the instance will be synchronized with both the server and other clients.")] + [Tooltip("Selects who has authority(sends state updates) over the instance.When the network topology is set to distributed authority, this always defaults to owner authority.If server (the default), then only server-side adjustments to the " + + " instance will be synchronized with clients. If owner (or client), then only the owner-side adjustments to the instance will be synchronized with both the server and other clients.")] #else [Tooltip("Selects who has authority (sends state updates) over the instance. If server (the default), then only server-side adjustments to the instance will be synchronized with clients. If owner (or client), " + "then only the owner-side adjustments to the instance will be synchronized with both the server and other clients.")] @@ -265,8 +264,34 @@ private void BuildDestinationToTransitionInfoTable() } } + [Serializable] + internal class AnimatorParameterEntry + { + public bool Synchronize; + public int NameHash; + public string Name; + public AnimatorControllerParameterType ParameterType; +#if UNITY_EDITOR + public AnimatorParameterEntry(AnimatorControllerParameter parameter) + { + Synchronize = true; + NameHash = parameter.nameHash; + Name = parameter.name; + ParameterType = parameter.type; + } +#endif + public AnimatorParameterEntry() { } + } + + [HideInInspector] + [SerializeField] + internal List AnimatorParameterEntries; + + internal Dictionary AnimatorParameterEntryTable = new Dictionary(); #if UNITY_EDITOR + internal bool AnimatorParametersExpanded; + private void ParseStateMachineStates(int layerIndex, ref AnimatorController animatorController, ref AnimatorStateMachine stateMachine) { for (int y = 0; y < stateMachine.states.Length; y++) @@ -639,6 +664,14 @@ protected virtual void Awake() return; } + foreach (var parameterEntry in AnimatorParameterEntries) + { + if (!AnimatorParameterEntryTable.ContainsKey(parameterEntry.NameHash)) + { + AnimatorParameterEntryTable.Add(parameterEntry.NameHash, parameterEntry); + } + } + int layers = m_Animator.layerCount; // Initializing the below arrays for everyone handles an issue // when running in owner authoritative mode and the owner changes. @@ -682,11 +715,17 @@ protected virtual void Awake() for (var i = 0; i < parameters.Length; i++) { var parameter = parameters[i]; + var synchronizeParameter = true; + if (AnimatorParameterEntryTable.ContainsKey(parameter.nameHash)) + { + synchronizeParameter = AnimatorParameterEntryTable[parameter.nameHash].Synchronize; + } var cacheParam = new AnimatorParamCache { Type = UnsafeUtility.EnumToInt(parameter.type), - Hash = parameter.nameHash + Hash = parameter.nameHash, + Exclude = !synchronizeParameter }; unsafe @@ -793,6 +832,10 @@ private void WriteSynchronizationData(ref BufferSerializer serializer) whe m_ParametersToUpdate.Clear(); for (int i = 0; i < m_CachedAnimatorParameters.Length; i++) { + if (m_CachedAnimatorParameters[i].Exclude) + { + continue; + } m_ParametersToUpdate.Add(i); } // Write, apply, and serialize @@ -1184,6 +1227,7 @@ private unsafe void WriteParameters(ref FastBufferWriter writer) if (cacheValue.Exclude) { + Debug.LogWarning($"Parameter hash:{cacheValue.Hash} should be excluded but is in the parameters to update list when writing parameter values!"); continue; } diff --git a/testproject/Assets/DefaultNetworkPrefabs.asset b/testproject/Assets/DefaultNetworkPrefabs.asset index a5e491547f..d7e2dfd68e 100644 --- a/testproject/Assets/DefaultNetworkPrefabs.asset +++ b/testproject/Assets/DefaultNetworkPrefabs.asset @@ -224,3 +224,21 @@ MonoBehaviour: SourcePrefabToOverride: {fileID: 0} SourceHashToOverride: 0 OverridingTargetPrefab: {fileID: 0} + - Override: 0 + Prefab: {fileID: 8188135024827620138, guid: c000e98bc12da2941a59ec61c260dd6a, + type: 3} + SourcePrefabToOverride: {fileID: 0} + SourceHashToOverride: 0 + OverridingTargetPrefab: {fileID: 0} + - Override: 0 + Prefab: {fileID: 1488386875393216933, guid: 7752ac8c0bfaed64c8de839537204114, + type: 3} + SourcePrefabToOverride: {fileID: 0} + SourceHashToOverride: 0 + OverridingTargetPrefab: {fileID: 0} + - Override: 0 + Prefab: {fileID: 6958138586392507362, guid: 4b31f769283d3c24ca2a5d6baf28a806, + type: 3} + SourcePrefabToOverride: {fileID: 0} + SourceHashToOverride: 0 + OverridingTargetPrefab: {fileID: 0} diff --git a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/CubeAnimatorController.controller b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/CubeAnimatorController.controller index 3434711a59..edc31e90ab 100644 --- a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/CubeAnimatorController.controller +++ b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/CubeAnimatorController.controller @@ -761,6 +761,12 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 9100000} + - m_Name: ExcludeFromSync + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer diff --git a/testproject/Assets/Tests/Runtime/Animation/AnimatorTestHelper.cs b/testproject/Assets/Tests/Runtime/Animation/AnimatorTestHelper.cs index e8130c68b4..6f5b60b227 100644 --- a/testproject/Assets/Tests/Runtime/Animation/AnimatorTestHelper.cs +++ b/testproject/Assets/Tests/Runtime/Animation/AnimatorTestHelper.cs @@ -108,6 +108,16 @@ public void UpdateParameters(ParameterValues parameterValues) m_Animator.SetBool("TestBool", parameterValues.BoolValue); } + public void UpdateExcludedParameter(float value) + { + m_Animator.SetFloat("ExcludeFromSync", value); + } + + public float GetExcludedParameter() + { + return m_Animator.GetFloat("ExcludeFromSync"); + } + public bool GetCurrentTriggerState() { return m_Animator.GetBool("TestTrigger"); diff --git a/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs b/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs index df4124e5eb..474c9dabbe 100644 --- a/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs +++ b/testproject/Assets/Tests/Runtime/Animation/NetworkAnimatorTests.cs @@ -157,6 +157,39 @@ private bool ParameterValuesMatch(OwnerShipMode ownerShipMode, AuthoritativeMode return true; } + private bool ExcludedParameterValuesDoNotMatch() + { + var objectToUpdate = AnimatorTestHelper.ServerSideInstance; + var excludedParameterValue = objectToUpdate.GetExcludedParameter(); + if (m_AuthoritativeMode == AuthoritativeMode.OwnerAuth) + { + objectToUpdate = m_OwnerShipMode == OwnerShipMode.ClientOwner ? AnimatorTestHelper.ClientSideInstances[m_ClientNetworkManagers[0].LocalClientId] : AnimatorTestHelper.ServerSideInstance; + excludedParameterValue = objectToUpdate.GetExcludedParameter(); + if (m_OwnerShipMode == OwnerShipMode.ClientOwner) + { + if (excludedParameterValue == AnimatorTestHelper.ServerSideInstance.GetExcludedParameter()) + { + return false; + } + } + } + + foreach (var animatorTestHelper in AnimatorTestHelper.ClientSideInstances) + { + if (objectToUpdate == animatorTestHelper.Value) + { + continue; + } + var clientExcludedParameter = animatorTestHelper.Value.GetExcludedParameter(); + if (clientExcludedParameter == excludedParameterValue) + { + return false; + } + } + return true; + } + + public enum OwnerShipMode { ServerOwner, @@ -268,6 +301,42 @@ public void ParameterUpdateTests() VerboseDebug($" ------------------ Parameter Test [{m_OwnerShipMode}] Stopping ------------------ "); } + [Test] + public void ParameterExcludedTests() + { + VerboseDebug($" ++++++++++++++++++ Parameter Excluded Test [{m_OwnerShipMode}] Starting ++++++++++++++++++ "); + + // Spawn our test animator object + var objectInstance = SpawnPrefab(m_OwnerShipMode == OwnerShipMode.ClientOwner, m_AuthoritativeMode); + + // Wait for it to spawn server-side + var success = WaitForConditionOrTimeOutWithTimeTravel(() => AnimatorTestHelper.ServerSideInstance != null); + Assert.True(success, $"Timed out waiting for the server-side instance of {GetNetworkAnimatorName(m_AuthoritativeMode)} to be spawned!"); + + // Wait for it to spawn client-side + success = WaitForConditionOrTimeOutWithTimeTravel(() => AnimatorTestHelper.ClientSideInstances.ContainsKey(m_ClientNetworkManagers[0].LocalClientId)); + Assert.True(success, $"Timed out waiting for the client-side instance of {GetNetworkAnimatorName(m_AuthoritativeMode)} to be spawned!"); + + if (m_AuthoritativeMode == AuthoritativeMode.OwnerAuth) + { + var objectToUpdate = m_OwnerShipMode == OwnerShipMode.ClientOwner ? AnimatorTestHelper.ClientSideInstances[m_ClientNetworkManagers[0].LocalClientId] : AnimatorTestHelper.ServerSideInstance; + // Set the excluded parameter value via the owner instance + objectToUpdate.UpdateExcludedParameter(Random.Range(1.5f, 100.0f)); + } + else + { + // Set the excluded parameter value via the server instance + AnimatorTestHelper.ServerSideInstance.UpdateExcludedParameter(Random.Range(1.5f, 100.0f)); + } + + TimeTravel(0.5, 60); + // Wait for the client side to update to the new parameter values + success = WaitForConditionOrTimeOutWithTimeTravel(ExcludedParameterValuesDoNotMatch); + Assert.True(success, $"The excluded parameter was synchronized!"); + VerboseDebug($" ------------------ Parameter Test [{m_OwnerShipMode}] Stopping ------------------ "); + } + + private bool AllTriggersDetected(OwnerShipMode ownerShipMode) { diff --git a/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab b/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab index 9ef650701f..34dc934616 100644 --- a/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab +++ b/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab @@ -386,6 +386,8 @@ MonoBehaviour: SpawnWithObservers: 1 DontDestroyWithOwner: 0 AutoObjectParentSync: 1 + SyncOwnerTransformWhenParented: 1 + AllowOwnerToParent: 0 --- !u!95 &6515743261518512780 Animator: serializedVersion: 7 @@ -420,6 +422,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e8d0727d5ae3244e3b569694d3912374, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 + NetworkAnimatorExpanded: 0 + AuthorityMode: 0 TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -463,6 +468,51 @@ MonoBehaviour: TransitionDuration: 0.25 TriggerNameHash: 1080829965 TransitionIndex: 2 + AnimatorParameterEntries: + - Synchronize: 1 + NameHash: 807753530 + Name: Rotate + ParameterType: 4 + - Synchronize: 1 + NameHash: -623385122 + Name: Pulse + ParameterType: 9 + - Synchronize: 1 + NameHash: -758535706 + Name: TestFloat + ParameterType: 1 + - Synchronize: 1 + NameHash: -1682086748 + Name: TestInt + ParameterType: 3 + - Synchronize: 1 + NameHash: 953368263 + Name: TestBool + ParameterType: 4 + - Synchronize: 1 + NameHash: 1033918907 + Name: TestTrigger + ParameterType: 9 + - Synchronize: 1 + NameHash: -1545343146 + Name: LateJoinTest + ParameterType: 4 + - Synchronize: 1 + NameHash: 1080829965 + Name: Attack + ParameterType: 9 + - Synchronize: 1 + NameHash: -1936256502 + Name: WeaponType + ParameterType: 3 + - Synchronize: 1 + NameHash: 1855955664 + Name: Weapon + ParameterType: 3 + - Synchronize: 0 + NameHash: -1993481368 + Name: ExcludeFromSync + ParameterType: 1 m_Animator: {fileID: 6515743261518512780} --- !u!114 &-8876216387850298050 MonoBehaviour: @@ -476,6 +526,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 48b31fae64dc3c14c98e3c5d09cb1269, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 --- !u!114 &5194088446451573146 MonoBehaviour: m_ObjectHideFlags: 0 @@ -488,3 +539,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a915cfb2e4f748e4f9526a8bf5ee84f2, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 diff --git a/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab b/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab index 56b679ebb2..ed40cdeb20 100644 --- a/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab +++ b/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab @@ -386,6 +386,8 @@ MonoBehaviour: SpawnWithObservers: 1 DontDestroyWithOwner: 0 AutoObjectParentSync: 1 + SyncOwnerTransformWhenParented: 1 + AllowOwnerToParent: 0 --- !u!95 &6515743261518512780 Animator: serializedVersion: 7 @@ -420,6 +422,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f6a3556fb5f3bee4e8a0fb88acff87ff, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 + NetworkAnimatorExpanded: 0 + AuthorityMode: 0 TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -463,6 +468,51 @@ MonoBehaviour: TransitionDuration: 0.25 TriggerNameHash: 1080829965 TransitionIndex: 2 + AnimatorParameterEntries: + - Synchronize: 1 + NameHash: 807753530 + Name: Rotate + ParameterType: 4 + - Synchronize: 1 + NameHash: -623385122 + Name: Pulse + ParameterType: 9 + - Synchronize: 1 + NameHash: -758535706 + Name: TestFloat + ParameterType: 1 + - Synchronize: 1 + NameHash: -1682086748 + Name: TestInt + ParameterType: 3 + - Synchronize: 1 + NameHash: 953368263 + Name: TestBool + ParameterType: 4 + - Synchronize: 1 + NameHash: 1033918907 + Name: TestTrigger + ParameterType: 9 + - Synchronize: 1 + NameHash: -1545343146 + Name: LateJoinTest + ParameterType: 4 + - Synchronize: 1 + NameHash: 1080829965 + Name: Attack + ParameterType: 9 + - Synchronize: 1 + NameHash: -1936256502 + Name: WeaponType + ParameterType: 3 + - Synchronize: 1 + NameHash: 1855955664 + Name: Weapon + ParameterType: 3 + - Synchronize: 0 + NameHash: -1993481368 + Name: ExcludeFromSync + ParameterType: 1 m_Animator: {fileID: 6515743261518512780} --- !u!114 &-8876216387850298050 MonoBehaviour: @@ -476,6 +526,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 48b31fae64dc3c14c98e3c5d09cb1269, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 --- !u!114 &5194088446451573146 MonoBehaviour: m_ObjectHideFlags: 0 @@ -488,3 +539,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a915cfb2e4f748e4f9526a8bf5ee84f2, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 diff --git a/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerOwnerAuth.prefab b/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerOwnerAuth.prefab index c243ddc5b4..273adf7194 100644 --- a/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerOwnerAuth.prefab +++ b/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerOwnerAuth.prefab @@ -377,6 +377,8 @@ MonoBehaviour: SpawnWithObservers: 1 DontDestroyWithOwner: 0 AutoObjectParentSync: 1 + SyncOwnerTransformWhenParented: 1 + AllowOwnerToParent: 0 --- !u!114 &2033189052978358381 MonoBehaviour: m_ObjectHideFlags: 0 @@ -389,6 +391,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f6a3556fb5f3bee4e8a0fb88acff87ff, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 + NetworkAnimatorExpanded: 0 + AuthorityMode: 0 TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -404,6 +409,15 @@ MonoBehaviour: TransitionDuration: 0.25 TriggerNameHash: 2081823275 TransitionIndex: 0 + AnimatorParameterEntries: + - Synchronize: 1 + NameHash: -813790127 + Name: Cheer + ParameterType: 9 + - Synchronize: 1 + NameHash: 2081823275 + Name: Idle + ParameterType: 9 m_Animator: {fileID: 4217478864398958195} --- !u!114 &6813822210364307126 MonoBehaviour: @@ -417,6 +431,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 77114a4761fbbf04ebafd6a884d3d312, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 --- !u!114 &-126005763244726388 MonoBehaviour: m_ObjectHideFlags: 0 @@ -429,6 +444,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a915cfb2e4f748e4f9526a8bf5ee84f2, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 --- !u!114 &8698027682878108555 MonoBehaviour: m_ObjectHideFlags: 0 @@ -441,3 +457,4 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 48b31fae64dc3c14c98e3c5d09cb1269, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 diff --git a/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerServerAuth.prefab b/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerServerAuth.prefab index 3b8fc9dd68..6cb3dde6ae 100644 --- a/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerServerAuth.prefab +++ b/testproject/Assets/Tests/Runtime/Animation/Resources/PlayerCheerServerAuth.prefab @@ -269,6 +269,8 @@ MonoBehaviour: SpawnWithObservers: 1 DontDestroyWithOwner: 0 AutoObjectParentSync: 1 + SyncOwnerTransformWhenParented: 1 + AllowOwnerToParent: 0 --- !u!114 &6975563805585028340 MonoBehaviour: m_ObjectHideFlags: 0 @@ -281,6 +283,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e8d0727d5ae3244e3b569694d3912374, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 + NetworkAnimatorExpanded: 0 + AuthorityMode: 0 TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -296,6 +301,15 @@ MonoBehaviour: TransitionDuration: 0.25 TriggerNameHash: 2081823275 TransitionIndex: 0 + AnimatorParameterEntries: + - Synchronize: 1 + NameHash: -813790127 + Name: Cheer + ParameterType: 9 + - Synchronize: 1 + NameHash: 2081823275 + Name: Idle + ParameterType: 9 m_Animator: {fileID: 7612458143371274009} --- !u!114 &9047519417049631294 MonoBehaviour: @@ -309,6 +323,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 77114a4761fbbf04ebafd6a884d3d312, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 --- !u!114 &-967079540368916851 MonoBehaviour: m_ObjectHideFlags: 0 @@ -321,6 +336,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a915cfb2e4f748e4f9526a8bf5ee84f2, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 --- !u!114 &707713165077007192 MonoBehaviour: m_ObjectHideFlags: 0 @@ -333,6 +349,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 48b31fae64dc3c14c98e3c5d09cb1269, type: 3} m_Name: m_EditorClassIdentifier: + ShowTopMostFoldoutHeaderGroup: 1 --- !u!1 &8445200702028649601 GameObject: m_ObjectHideFlags: 0 From d3f06be4619528611c4f0e5c376fedda69c6b4c6 Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Mon, 11 Aug 2025 16:54:19 -0500 Subject: [PATCH 07/19] update Renamed the new method `ToggleParameterSync` to `EnableParameterSynchronization`. Added overridden version of `EnableParameterSynchronization` that accepts a string for the name and changed the original method to accept the hash value of the parameter name. Did some minor clean up in the `NetworkAnimatorStateChangeHandler.NetworkUpdate` method. Added some additional comments in various places. --- .../Runtime/Components/NetworkAnimator.cs | 66 +++++++++++++------ 1 file changed, 45 insertions(+), 21 deletions(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 06d8afcab1..6ebc31d042 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -1,6 +1,7 @@ #if COM_UNITY_MODULES_ANIMATION using System; using System.Collections.Generic; +using System.Runtime.CompilerServices; using Unity.Collections; using Unity.Collections.LowLevel.Unsafe; using UnityEngine; @@ -72,6 +73,13 @@ private void FlushMessages() m_SendTriggerUpdates.Clear(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private bool HasAuthority() + { + var isServerAuthority = m_NetworkAnimator.IsServerAuthoritative(); + return (!isServerAuthority && m_NetworkAnimator.IsOwner) || (isServerAuthority && m_NetworkAnimator.IsServer); + } + /// public void NetworkUpdate(NetworkUpdateStage updateStage) { @@ -79,25 +87,32 @@ public void NetworkUpdate(NetworkUpdateStage updateStage) { case NetworkUpdateStage.PreUpdate: { - // Only the owner or the server send messages - if (m_NetworkAnimator.IsOwner || m_IsServer) + // NOTE: This script has an order of operations requirement where + // the authority and/or server will flush messages first, parameter updates are applied + // for all instances, and then only the authority will check for animator changes. Changing + // the order could cause timing related issues. + + var hasAuthority = HasAuthority(); + // Only the authority or the server will send messages + if (hasAuthority || m_IsServer) { // Flush any pending messages FlushMessages(); } // Everyone applies any parameters updated - for (int i = 0; i < m_ProcessParameterUpdates.Count; i++) + if (m_ProcessParameterUpdates.Count > 0) { - var parameterUpdate = m_ProcessParameterUpdates[i]; - m_NetworkAnimator.UpdateParameters(ref parameterUpdate); + for (int i = 0; i < m_ProcessParameterUpdates.Count; i++) + { + var parameterUpdate = m_ProcessParameterUpdates[i]; + m_NetworkAnimator.UpdateParameters(ref parameterUpdate); + } + m_ProcessParameterUpdates.Clear(); } - m_ProcessParameterUpdates.Clear(); - var isServerAuthority = m_NetworkAnimator.IsServerAuthoritative(); - // owners when owner authoritative or the server when server authoritative are the only instances that - // checks for Animator changes - if ((!isServerAuthority && m_NetworkAnimator.IsOwner) || (isServerAuthority && m_NetworkAnimator.IsServer)) + // Only the authority checks for Animator changes + if (hasAuthority) { m_NetworkAnimator.CheckForAnimatorChanges(); } @@ -1511,6 +1526,10 @@ internal void SendAnimStateRpc(AnimationMessage animationMessage) ProcessAnimStates(animationMessage); } + /// + /// Process incoming . + /// + /// The message to process. private void ProcessAnimStates(AnimationMessage animationMessage) { if (HasAuthority) @@ -1530,8 +1549,6 @@ private void ProcessAnimStates(AnimationMessage animationMessage) } } - - /// /// Server-side trigger state update request /// The server sets its local state and then forwards the message to the remaining clients @@ -1675,24 +1692,31 @@ public void ResetTrigger(int hash) } /// - /// Allows for the enabling or disabling the synchronization of a specific - /// parameter. + /// Allows for the enabling or disabling the synchronization of a specific parameter. /// - /// name of the parameter - /// whether to enable or disable synchronizing it - public void ToggleParameterSync(string parameterName, bool enable) + /// The name of the parameter. + /// Whether to enable or disable the synchronization of the parameter. + public void EnableParameterSynchronization(string parameterName, bool isEnabled) + { + EnableParameterSynchronization(Animator.StringToHash(parameterName), isEnabled); + } + + /// + /// Allows for the enabling or disabling the synchronization of a specific parameter. + /// + /// The hash value (from using ) of the parameter name. + /// Whether to enable or disable the synchronization of the parameter. + public void EnableParameterSynchronization(int parameterNameHash, bool isEnabled) { var serverAuthoritative = OnIsServerAuthoritative(); if (!IsSpawned || serverAuthoritative && IsServer || !serverAuthoritative && IsOwner) { - var hash32 = Animator.StringToHash(parameterName); - for (int i = 0; i < m_CachedAnimatorParameters.Length; i++) { var cachedParameter = m_CachedAnimatorParameters[i]; - if (cachedParameter.Hash == hash32) + if (cachedParameter.Hash == parameterNameHash) { - cachedParameter.Exclude = !enable; + cachedParameter.Exclude = !isEnabled; m_CachedAnimatorParameters[i] = cachedParameter; break; } From 4168bcaf14d1490f662b535403e236e434944a82 Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Tue, 12 Aug 2025 12:44:19 -0500 Subject: [PATCH 08/19] update Reverted the change in HiddenScriptEditor. Moved away from a NetworkAnimator custom editor to a custom property drawer to handle displaying the Animator parameters to be synchronized. Handling the population of parameters and populating the NetworkAnimator.AnimatorParameterEntries during OnValidate. Had to re-apply unchecking the excluded parameter in some prefabs for testing purposes. --- .../Editor/HiddenScriptEditor.cs | 8 +- .../Editor/NetworkAnimatorEditor.cs | 76 ---------- .../NetworkAnimatorParameterEntryEditor.cs | 97 +++++++++++++ ...tworkAnimatorParameterEntryEditor.cs.meta} | 0 .../Runtime/Components/NetworkAnimator.cs | 130 ++++++++++++++---- .../NetworkAnimatorTestPrefab.prefab | 100 +++++++++++++- .../Animation/Resources/AnimatorObject.prefab | 92 +++++++------ .../Resources/OwnerAnimatorObject.prefab | 94 ++++++------- 8 files changed, 394 insertions(+), 203 deletions(-) delete mode 100644 com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs create mode 100644 com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs rename com.unity.netcode.gameobjects/Editor/{NetworkAnimatorEditor.cs.meta => NetworkAnimatorParameterEntryEditor.cs.meta} (100%) diff --git a/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs b/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs index a58d9aafce..f4a77abc4c 100644 --- a/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs +++ b/com.unity.netcode.gameobjects/Editor/HiddenScriptEditor.cs @@ -155,11 +155,11 @@ public override void OnInspectorGUI() /// /// Internal use. Hides the script field for NetworkAnimator. /// - //[CustomEditor(typeof(NetworkAnimator), true)] - //public class NetworkAnimatorEditor : HiddenScriptEditor - //{ + [CustomEditor(typeof(NetworkAnimator), true)] + public class NetworkAnimatorEditor : HiddenScriptEditor + { - //} + } #endif #if COM_UNITY_MODULES_PHYSICS diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs deleted file mode 100644 index 4c6ae26c12..0000000000 --- a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System.Linq; -using Unity.Netcode.Components; -using UnityEditor; -using UnityEngine; - -namespace Unity.Netcode.Editor -{ - /// - /// The for - /// - [CustomEditor(typeof(NetworkAnimator), true)] - [CanEditMultipleObjects] - public class NetworkAnimatorEditor : NetcodeEditorBase - { - private static float s_MaxRowWidth = EditorGUIUtility.labelWidth + EditorGUIUtility.fieldWidth + 5; - private SerializedProperty m_AuthorityMode; - private SerializedProperty m_Animator; - - public override void OnEnable() - { - m_AuthorityMode = serializedObject.FindProperty(nameof(NetworkAnimator.AuthorityMode)); - - m_Animator = serializedObject.FindProperty("m_Animator"); - } - - private void DisplayNetworkAnimatorProperties() - { - var networkAnimator = target as NetworkAnimator; - EditorGUILayout.PropertyField(m_AuthorityMode); - EditorGUILayout.PropertyField(m_Animator); - if (networkAnimator.Animator != null) - { - EditorGUILayout.Space(); - networkAnimator.AnimatorParametersExpanded = EditorGUILayout.BeginFoldoutHeaderGroup(networkAnimator.AnimatorParametersExpanded, $"Animator Parameters to Synchronize"); - { - var parameters = networkAnimator.Animator.parameters; - networkAnimator.AnimatorParameterEntryTable.Clear(); - foreach (var parameterEntry in networkAnimator.AnimatorParameterEntries) - { - if (!networkAnimator.AnimatorParameterEntryTable.ContainsKey(parameterEntry.NameHash)) - { - networkAnimator.AnimatorParameterEntryTable.Add(parameterEntry.NameHash, parameterEntry); - } - } - if (networkAnimator.AnimatorParametersExpanded) - { - foreach (var parameter in parameters) - { - if (!networkAnimator.AnimatorParameterEntryTable.ContainsKey(parameter.nameHash)) - { - networkAnimator.AnimatorParameterEntryTable.Add(parameter.nameHash, new NetworkAnimator.AnimatorParameterEntry(parameter)); - } - var parameterEntry = networkAnimator.AnimatorParameterEntryTable[parameter.nameHash]; - parameterEntry.Synchronize = EditorGUILayout.ToggleLeft($"{parameterEntry.Name} ({parameterEntry.ParameterType.ToString()})", parameterEntry.Synchronize); - parameterEntry.ParameterType = parameter.type; - parameterEntry.Name = parameter.name; - parameterEntry.NameHash = parameter.nameHash; - networkAnimator.AnimatorParameterEntryTable[parameter.nameHash] = parameterEntry; - } - } - networkAnimator.AnimatorParameterEntries = networkAnimator.AnimatorParameterEntryTable.Values.ToList(); - } - - EditorGUILayout.EndFoldoutHeaderGroup(); - } - } - - public override void OnInspectorGUI() - { - var networkAnimator = target as NetworkAnimator; - void SetExpanded(bool expanded) { networkAnimator.NetworkAnimatorExpanded = expanded; } - DrawFoldOutGroup(networkAnimator.GetType(), DisplayNetworkAnimatorProperties, networkAnimator.NetworkAnimatorExpanded, SetExpanded); - base.OnInspectorGUI(); - } - } -} diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs new file mode 100644 index 0000000000..502ed53827 --- /dev/null +++ b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs @@ -0,0 +1,97 @@ + +using Unity.Netcode.Components; +using UnityEditor; +//using UnityEditor.UIElements; +//using UnityEngine.UIElements; +using UnityEngine; + +namespace Unity.Netcode.Editor +{ + [CustomPropertyDrawer(typeof(NetworkAnimator.AnimatorParametersListContainer))] + internal class NetworkAnimatorParameterEntryEditor : PropertyDrawer + { + // Draw the property inside the given rect + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + EditorGUI.BeginProperty(position, label, property); + + // Draw the foldout for the list + SerializedProperty items = property.FindPropertyRelative(nameof(NetworkAnimator.AnimatorParameterEntries.ParameterEntries)); + position.height = EditorGUIUtility.singleLineHeight; + property.isExpanded = EditorGUI.Foldout(position, property.isExpanded, label); + + if (property.isExpanded) + { + // Set the indention level down + EditorGUI.indentLevel++; + for (int i = 0; i < items.arraySize; i++) + { + position.y += EditorGUIUtility.singleLineHeight + 2; + SerializedProperty element = items.GetArrayElementAtIndex(i); + var nameField = element.FindPropertyRelative(nameof(NetworkAnimator.AnimatorParameterEntry.name)); + // Draw the foldout for the item + element.isExpanded = EditorGUI.Foldout(position, element.isExpanded, nameField.stringValue); + if (!element.isExpanded) + { + continue; + } + // Draw the contents of the item + position.y += EditorGUIUtility.singleLineHeight + 2; + // Set the indention level down + EditorGUI.indentLevel++; + // Calculate rects + var nameHashRect = new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight); + position.y += EditorGUIUtility.singleLineHeight + 2; + var paramRect = new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight); + position.y += EditorGUIUtility.singleLineHeight + 2; + var syncRect = new Rect(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight); + + // Get the three properties we want to visualize in the inspector view + var synchronizeField = element.FindPropertyRelative(nameof(NetworkAnimator.AnimatorParameterEntry.Synchronize)); + var nameHashField = element.FindPropertyRelative(nameof(NetworkAnimator.AnimatorParameterEntry.NameHash)); + var parameterTypeField = element.FindPropertyRelative(nameof(NetworkAnimator.AnimatorParameterEntry.ParameterType)); + + // Draw the read only fields + GUI.enabled = false; + EditorGUI.PropertyField(nameHashRect, nameHashField); + EditorGUI.PropertyField(paramRect, parameterTypeField); + GUI.enabled = true; + // Draw the read/write fields + EditorGUI.PropertyField(syncRect, synchronizeField); + // Set the indention level up + EditorGUI.indentLevel--; + } + // Set the indention level up + EditorGUI.indentLevel--; + } + EditorGUI.EndProperty(); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + var totalHeight = EditorGUIUtility.singleLineHeight; + if (!property.isExpanded) + { + return totalHeight; + } + var singleLineWithSpace = EditorGUIUtility.singleLineHeight + 2; + SerializedProperty items = property.FindPropertyRelative(nameof(NetworkAnimator.AnimatorParameterEntries.ParameterEntries)); + + totalHeight += singleLineWithSpace; + for (int i = 0; i < items.arraySize; i++) + { + SerializedProperty element = items.GetArrayElementAtIndex(i); + if (element.isExpanded) + { + totalHeight += (singleLineWithSpace * 4); + } + else + { + totalHeight += EditorGUIUtility.singleLineHeight; + } + } + return totalHeight; + } + } +} + diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs.meta b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs.meta similarity index 100% rename from com.unity.netcode.gameobjects/Editor/NetworkAnimatorEditor.cs.meta rename to com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs.meta diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 6ebc31d042..547ed44c94 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -249,6 +249,21 @@ public enum AuthorityModes #endif public AuthorityModes AuthorityMode; + [Tooltip("The animator that this NetworkAnimator component will be synchronizing.")] + [SerializeField] private Animator m_Animator; + + /// + /// The associated with this instance. + /// + public Animator Animator + { + get { return m_Animator; } + set + { + m_Animator = value; + } + } + /// /// Used to build the destination state to transition info table /// @@ -282,31 +297,33 @@ private void BuildDestinationToTransitionInfoTable() [Serializable] internal class AnimatorParameterEntry { - public bool Synchronize; +#pragma warning disable IDE1006 + [HideInInspector] + public string name; +#pragma warning restore IDE1006 public int NameHash; - public string Name; + public bool Synchronize; public AnimatorControllerParameterType ParameterType; -#if UNITY_EDITOR - public AnimatorParameterEntry(AnimatorControllerParameter parameter) - { - Synchronize = true; - NameHash = parameter.nameHash; - Name = parameter.name; - ParameterType = parameter.type; - } -#endif - public AnimatorParameterEntry() { } } - [HideInInspector] + [Serializable] + internal class AnimatorParametersListContainer + { + public List ParameterEntries = new List(); + } + [SerializeField] - internal List AnimatorParameterEntries; + internal AnimatorParametersListContainer AnimatorParameterEntries; internal Dictionary AnimatorParameterEntryTable = new Dictionary(); #if UNITY_EDITOR + [HideInInspector] + [SerializeField] internal bool AnimatorParametersExpanded; + internal Dictionary ParameterToNameLookup = new Dictionary(); + private void ParseStateMachineStates(int layerIndex, ref AnimatorController animatorController, ref AnimatorStateMachine stateMachine) { for (int y = 0; y < stateMachine.states.Length; y++) @@ -397,6 +414,73 @@ private void BuildTransitionStateInfoList() } } + internal void ProcessParameterEntries() + { + if (!Animator) + { + if (AnimatorParameterEntries != null && AnimatorParameterEntries.ParameterEntries.Count > 0) + { + AnimatorParameterEntries.ParameterEntries.Clear(); + } + return; + } + + var parameters = Animator.parameters; + + var parametersToRemove = new List(); + ParameterToNameLookup.Clear(); + foreach (var parameter in parameters) + { + ParameterToNameLookup.Add(parameter.nameHash, parameter); + } + + // Rebuild the parameter entry table for the inspector view + AnimatorParameterEntryTable.Clear(); + foreach (var parameterEntry in AnimatorParameterEntries.ParameterEntries) + { + // Check for removed parameters. + if (!ParameterToNameLookup.ContainsKey(parameterEntry.NameHash)) + { + parametersToRemove.Add(parameterEntry); + // Skip this removed entry + continue; + } + + // Build the list of known parameters + if (!AnimatorParameterEntryTable.ContainsKey(parameterEntry.NameHash)) + { + AnimatorParameterEntryTable.Add(parameterEntry.NameHash, parameterEntry); + } + + var parameter = ParameterToNameLookup[parameterEntry.NameHash]; + parameterEntry.name = parameter.name; + parameterEntry.ParameterType = parameter.type; + } + + // Update for removed parameters + foreach (var parameterEntry in parametersToRemove) + { + AnimatorParameterEntries.ParameterEntries.Remove(parameterEntry); + } + + // Update any newly added parameters + foreach (var parameterLookUp in ParameterToNameLookup) + { + if (!AnimatorParameterEntryTable.ContainsKey(parameterLookUp.Value.nameHash)) + { + var animatorParameterEntry = new AnimatorParameterEntry() + { + name = parameterLookUp.Value.name, + NameHash = parameterLookUp.Value.nameHash, + ParameterType = parameterLookUp.Value.type, + Synchronize = true, + }; + AnimatorParameterEntries.ParameterEntries.Add(animatorParameterEntry); + AnimatorParameterEntryTable.Add(parameterLookUp.Value.nameHash, animatorParameterEntry); + } + } + } + /// /// In-Editor Only /// Virtual OnValidate method for custom derived NetworkAnimator classes. @@ -404,6 +488,7 @@ private void BuildTransitionStateInfoList() protected virtual void OnValidate() { BuildTransitionStateInfoList(); + ProcessParameterEntries(); } #endif @@ -557,21 +642,6 @@ public void NetworkSerialize(BufferSerializer serializer) where T : IReade } } - [Tooltip("The animator that this NetworkAnimator component will be synchronizing.")] - [SerializeField] private Animator m_Animator; - - /// - /// The associated with this instance. - /// - public Animator Animator - { - get { return m_Animator; } - set - { - m_Animator = value; - } - } - /// /// Determines whether the is or based on the field. /// Optionally, you can still derive from and override the method. @@ -679,7 +749,7 @@ protected virtual void Awake() return; } - foreach (var parameterEntry in AnimatorParameterEntries) + foreach (var parameterEntry in AnimatorParameterEntries.ParameterEntries) { if (!AnimatorParameterEntryTable.ContainsKey(parameterEntry.NameHash)) { diff --git a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab index 438caf1913..ecb2989dd7 100644 --- a/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab +++ b/testproject/Assets/Tests/Manual/NetworkAnimatorTests/NetworkAnimatorTestPrefab.prefab @@ -380,7 +380,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: ShowTopMostFoldoutHeaderGroup: 1 + NetworkAnimatorExpanded: 0 AuthorityMode: 1 + m_Animator: {fileID: 3078684837575715027} TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -424,7 +426,53 @@ MonoBehaviour: TransitionDuration: 0.25 TriggerNameHash: 1080829965 TransitionIndex: 2 - m_Animator: {fileID: 3078684837575715027} + AnimatorParameterEntries: + ParameterEntries: + - name: Rotate + NameHash: 807753530 + Synchronize: 1 + ParameterType: 4 + - name: Pulse + NameHash: -623385122 + Synchronize: 1 + ParameterType: 9 + - name: TestFloat + NameHash: -758535706 + Synchronize: 1 + ParameterType: 1 + - name: TestInt + NameHash: -1682086748 + Synchronize: 1 + ParameterType: 3 + - name: TestBool + NameHash: 953368263 + Synchronize: 1 + ParameterType: 4 + - name: TestTrigger + NameHash: 1033918907 + Synchronize: 1 + ParameterType: 9 + - name: LateJoinTest + NameHash: -1545343146 + Synchronize: 1 + ParameterType: 4 + - name: Attack + NameHash: 1080829965 + Synchronize: 1 + ParameterType: 9 + - name: WeaponType + NameHash: -1936256502 + Synchronize: 1 + ParameterType: 3 + - name: Weapon + NameHash: 1855955664 + Synchronize: 1 + ParameterType: 3 + - name: ExcludeFromSync + NameHash: -1993481368 + Synchronize: 0 + ParameterType: 1 + AnimatorParametersExpanded: 0 --- !u!1 &3214090169133903718 GameObject: m_ObjectHideFlags: 0 @@ -736,7 +784,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: ShowTopMostFoldoutHeaderGroup: 1 + NetworkAnimatorExpanded: 0 AuthorityMode: 0 + m_Animator: {fileID: 6047057957339659638} TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -780,7 +830,53 @@ MonoBehaviour: TransitionDuration: 0.25 TriggerNameHash: 1080829965 TransitionIndex: 2 - m_Animator: {fileID: 6047057957339659638} + AnimatorParameterEntries: + ParameterEntries: + - name: Rotate + NameHash: 807753530 + Synchronize: 1 + ParameterType: 4 + - name: Pulse + NameHash: -623385122 + Synchronize: 1 + ParameterType: 9 + - name: TestFloat + NameHash: -758535706 + Synchronize: 1 + ParameterType: 1 + - name: TestInt + NameHash: -1682086748 + Synchronize: 1 + ParameterType: 3 + - name: TestBool + NameHash: 953368263 + Synchronize: 1 + ParameterType: 4 + - name: TestTrigger + NameHash: 1033918907 + Synchronize: 1 + ParameterType: 9 + - name: LateJoinTest + NameHash: -1545343146 + Synchronize: 1 + ParameterType: 4 + - name: Attack + NameHash: 1080829965 + Synchronize: 1 + ParameterType: 9 + - name: WeaponType + NameHash: -1936256502 + Synchronize: 1 + ParameterType: 3 + - name: Weapon + NameHash: 1855955664 + Synchronize: 1 + ParameterType: 3 + - name: ExcludeFromSync + NameHash: -1993481368 + Synchronize: 0 + ParameterType: 1 + AnimatorParametersExpanded: 1 --- !u!1 &4033769488171516769 GameObject: m_ObjectHideFlags: 0 diff --git a/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab b/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab index 34dc934616..e7caee94cc 100644 --- a/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab +++ b/testproject/Assets/Tests/Runtime/Animation/Resources/AnimatorObject.prefab @@ -425,6 +425,7 @@ MonoBehaviour: ShowTopMostFoldoutHeaderGroup: 1 NetworkAnimatorExpanded: 0 AuthorityMode: 0 + m_Animator: {fileID: 6515743261518512780} TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -469,51 +470,52 @@ MonoBehaviour: TriggerNameHash: 1080829965 TransitionIndex: 2 AnimatorParameterEntries: - - Synchronize: 1 - NameHash: 807753530 - Name: Rotate - ParameterType: 4 - - Synchronize: 1 - NameHash: -623385122 - Name: Pulse - ParameterType: 9 - - Synchronize: 1 - NameHash: -758535706 - Name: TestFloat - ParameterType: 1 - - Synchronize: 1 - NameHash: -1682086748 - Name: TestInt - ParameterType: 3 - - Synchronize: 1 - NameHash: 953368263 - Name: TestBool - ParameterType: 4 - - Synchronize: 1 - NameHash: 1033918907 - Name: TestTrigger - ParameterType: 9 - - Synchronize: 1 - NameHash: -1545343146 - Name: LateJoinTest - ParameterType: 4 - - Synchronize: 1 - NameHash: 1080829965 - Name: Attack - ParameterType: 9 - - Synchronize: 1 - NameHash: -1936256502 - Name: WeaponType - ParameterType: 3 - - Synchronize: 1 - NameHash: 1855955664 - Name: Weapon - ParameterType: 3 - - Synchronize: 0 - NameHash: -1993481368 - Name: ExcludeFromSync - ParameterType: 1 - m_Animator: {fileID: 6515743261518512780} + ParameterEntries: + - name: Rotate + NameHash: 807753530 + Synchronize: 1 + ParameterType: 4 + - name: Pulse + NameHash: -623385122 + Synchronize: 1 + ParameterType: 9 + - name: TestFloat + NameHash: -758535706 + Synchronize: 1 + ParameterType: 1 + - name: TestInt + NameHash: -1682086748 + Synchronize: 1 + ParameterType: 3 + - name: TestBool + NameHash: 953368263 + Synchronize: 1 + ParameterType: 4 + - name: TestTrigger + NameHash: 1033918907 + Synchronize: 1 + ParameterType: 9 + - name: LateJoinTest + NameHash: -1545343146 + Synchronize: 1 + ParameterType: 4 + - name: Attack + NameHash: 1080829965 + Synchronize: 1 + ParameterType: 9 + - name: WeaponType + NameHash: -1936256502 + Synchronize: 1 + ParameterType: 3 + - name: Weapon + NameHash: 1855955664 + Synchronize: 1 + ParameterType: 3 + - name: ExcludeFromSync + NameHash: -1993481368 + Synchronize: 0 + ParameterType: 1 + AnimatorParametersExpanded: 0 --- !u!114 &-8876216387850298050 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab b/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab index ed40cdeb20..d737209912 100644 --- a/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab +++ b/testproject/Assets/Tests/Runtime/Animation/Resources/OwnerAnimatorObject.prefab @@ -424,7 +424,8 @@ MonoBehaviour: m_EditorClassIdentifier: ShowTopMostFoldoutHeaderGroup: 1 NetworkAnimatorExpanded: 0 - AuthorityMode: 0 + AuthorityMode: 1 + m_Animator: {fileID: 6515743261518512780} TransitionStateInfoList: - IsCrossFadeExit: 0 Layer: 0 @@ -469,51 +470,52 @@ MonoBehaviour: TriggerNameHash: 1080829965 TransitionIndex: 2 AnimatorParameterEntries: - - Synchronize: 1 - NameHash: 807753530 - Name: Rotate - ParameterType: 4 - - Synchronize: 1 - NameHash: -623385122 - Name: Pulse - ParameterType: 9 - - Synchronize: 1 - NameHash: -758535706 - Name: TestFloat - ParameterType: 1 - - Synchronize: 1 - NameHash: -1682086748 - Name: TestInt - ParameterType: 3 - - Synchronize: 1 - NameHash: 953368263 - Name: TestBool - ParameterType: 4 - - Synchronize: 1 - NameHash: 1033918907 - Name: TestTrigger - ParameterType: 9 - - Synchronize: 1 - NameHash: -1545343146 - Name: LateJoinTest - ParameterType: 4 - - Synchronize: 1 - NameHash: 1080829965 - Name: Attack - ParameterType: 9 - - Synchronize: 1 - NameHash: -1936256502 - Name: WeaponType - ParameterType: 3 - - Synchronize: 1 - NameHash: 1855955664 - Name: Weapon - ParameterType: 3 - - Synchronize: 0 - NameHash: -1993481368 - Name: ExcludeFromSync - ParameterType: 1 - m_Animator: {fileID: 6515743261518512780} + ParameterEntries: + - name: Rotate + NameHash: 807753530 + Synchronize: 1 + ParameterType: 4 + - name: Pulse + NameHash: -623385122 + Synchronize: 1 + ParameterType: 9 + - name: TestFloat + NameHash: -758535706 + Synchronize: 1 + ParameterType: 1 + - name: TestInt + NameHash: -1682086748 + Synchronize: 1 + ParameterType: 3 + - name: TestBool + NameHash: 953368263 + Synchronize: 1 + ParameterType: 4 + - name: TestTrigger + NameHash: 1033918907 + Synchronize: 1 + ParameterType: 9 + - name: LateJoinTest + NameHash: -1545343146 + Synchronize: 1 + ParameterType: 4 + - name: Attack + NameHash: 1080829965 + Synchronize: 1 + ParameterType: 9 + - name: WeaponType + NameHash: -1936256502 + Synchronize: 1 + ParameterType: 3 + - name: Weapon + NameHash: 1855955664 + Synchronize: 1 + ParameterType: 3 + - name: ExcludeFromSync + NameHash: -1993481368 + Synchronize: 0 + ParameterType: 1 + AnimatorParametersExpanded: 0 --- !u!114 &-8876216387850298050 MonoBehaviour: m_ObjectHideFlags: 0 From 27da26b10932c4dcd3b949c8dbb00d610015c21b Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Tue, 12 Aug 2025 13:14:25 -0500 Subject: [PATCH 09/19] update Renaming NetworkAnimatorParameterEntryEditor to NetworkAnimatorParameterEntryDrawer since it is a property drawer. Excluding NetworkAnimatorParameterEntryDrawer when the animation package is not installed. --- ...tryEditor.cs => NetworkAnimatorParameterEntryDrawer.cs} | 7 +++---- ...cs.meta => NetworkAnimatorParameterEntryDrawer.cs.meta} | 0 2 files changed, 3 insertions(+), 4 deletions(-) rename com.unity.netcode.gameobjects/Editor/{NetworkAnimatorParameterEntryEditor.cs => NetworkAnimatorParameterEntryDrawer.cs} (97%) rename com.unity.netcode.gameobjects/Editor/{NetworkAnimatorParameterEntryEditor.cs.meta => NetworkAnimatorParameterEntryDrawer.cs.meta} (100%) diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryDrawer.cs similarity index 97% rename from com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs rename to com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryDrawer.cs index 502ed53827..9060b8993c 100644 --- a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs +++ b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryDrawer.cs @@ -1,14 +1,13 @@ +#if COM_UNITY_MODULES_ANIMATION using Unity.Netcode.Components; using UnityEditor; -//using UnityEditor.UIElements; -//using UnityEngine.UIElements; using UnityEngine; namespace Unity.Netcode.Editor { [CustomPropertyDrawer(typeof(NetworkAnimator.AnimatorParametersListContainer))] - internal class NetworkAnimatorParameterEntryEditor : PropertyDrawer + internal class NetworkAnimatorParameterEntryDrawer : PropertyDrawer { // Draw the property inside the given rect public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) @@ -94,4 +93,4 @@ public override float GetPropertyHeight(SerializedProperty property, GUIContent } } } - +#endif diff --git a/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs.meta b/com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryDrawer.cs.meta similarity index 100% rename from com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryEditor.cs.meta rename to com.unity.netcode.gameobjects/Editor/NetworkAnimatorParameterEntryDrawer.cs.meta From 4ee64520894ea56408153b5ac1f45b81620a1ea4 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Sun, 2 Nov 2025 17:57:42 -0600 Subject: [PATCH 10/19] update Converting all legacy ClientRpc and ServerRpc usages over to the newer universal RPC format. Using a pre-allocated Persistent RpcTargetGroup as opposed to the List. When using `NetworkAnimator.SetTrigger` with a client-server network topology and it is the server or host invoking the method, then go ahead and set the trigger since it no longer sends itself an RPC/no longer invokes the InternalSetTrigger via RPC. --- .../Runtime/Components/NetworkAnimator.cs | 137 +++++++++--------- 1 file changed, 68 insertions(+), 69 deletions(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 124333b99b..1118ab7f73 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -34,7 +34,7 @@ private void FlushMessages() } else { - m_NetworkAnimator.SendAnimStateClientRpc(animationUpdate.AnimationMessage, animationUpdate.ClientRpcParams); + m_NetworkAnimator.SendClientAnimStateRpc(animationUpdate.AnimationMessage, animationUpdate.RpcParams); } } @@ -48,7 +48,7 @@ private void FlushMessages() } else { - m_NetworkAnimator.SendParametersUpdateClientRpc(sendEntry.ParametersUpdateMessage, sendEntry.ClientRpcParams); + m_NetworkAnimator.SendClientParametersUpdateRpc(sendEntry.ParametersUpdateMessage, sendEntry.RpcParams); } } m_SendParameterUpdates.Clear(); @@ -63,11 +63,11 @@ private void FlushMessages() { if (!sendEntry.SendToServer) { - m_NetworkAnimator.SendAnimTriggerClientRpc(sendEntry.AnimationTriggerMessage, sendEntry.ClientRpcParams); + m_NetworkAnimator.SendClientAnimTriggerRpc(sendEntry.AnimationTriggerMessage, sendEntry.RpcParams); } else { - m_NetworkAnimator.SendAnimTriggerServerRpc(sendEntry.AnimationTriggerMessage); + m_NetworkAnimator.SendServerAnimTriggerRpc(sendEntry.AnimationTriggerMessage); } } } @@ -127,7 +127,7 @@ public void NetworkUpdate(NetworkUpdateStage updateStage) /// private struct AnimationUpdate { - public ClientRpcParams ClientRpcParams; + public RpcParams RpcParams; public NetworkAnimator.AnimationMessage AnimationMessage; } @@ -136,14 +136,14 @@ private struct AnimationUpdate /// /// Invoked when a server needs to forwarding an update to the animation state /// - internal void SendAnimationUpdate(NetworkAnimator.AnimationMessage animationMessage, ClientRpcParams clientRpcParams = default) + internal void SendAnimationUpdate(NetworkAnimator.AnimationMessage animationMessage, RpcParams rpcParams = default) { - m_SendAnimationUpdates.Add(new AnimationUpdate() { ClientRpcParams = clientRpcParams, AnimationMessage = animationMessage }); + m_SendAnimationUpdates.Add(new AnimationUpdate() { RpcParams = rpcParams, AnimationMessage = animationMessage }); } private struct ParameterUpdate { - public ClientRpcParams ClientRpcParams; + public RpcParams RpcParams; public NetworkAnimator.ParametersUpdateMessage ParametersUpdateMessage; } @@ -152,9 +152,9 @@ private struct ParameterUpdate /// /// Invoked when a server needs to forwarding an update to the parameter state /// - internal void SendParameterUpdate(NetworkAnimator.ParametersUpdateMessage parametersUpdateMessage, ClientRpcParams clientRpcParams = default) + internal void SendParameterUpdate(NetworkAnimator.ParametersUpdateMessage parametersUpdateMessage, RpcParams rpcParams = default) { - m_SendParameterUpdates.Add(new ParameterUpdate() { ClientRpcParams = clientRpcParams, ParametersUpdateMessage = parametersUpdateMessage }); + m_SendParameterUpdates.Add(new ParameterUpdate() { RpcParams = rpcParams, ParametersUpdateMessage = parametersUpdateMessage }); } private List m_ProcessParameterUpdates = new List(); @@ -166,7 +166,7 @@ internal void ProcessParameterUpdate(NetworkAnimator.ParametersUpdateMessage par private struct TriggerUpdate { public bool SendToServer; - public ClientRpcParams ClientRpcParams; + public RpcParams RpcParams; public NetworkAnimator.AnimationTriggerMessage AnimationTriggerMessage; } @@ -175,9 +175,9 @@ private struct TriggerUpdate /// /// Invoked when a server needs to forward an update to a Trigger state /// - internal void QueueTriggerUpdateToClient(NetworkAnimator.AnimationTriggerMessage animationTriggerMessage, ClientRpcParams clientRpcParams = default) + internal void QueueTriggerUpdateToClient(NetworkAnimator.AnimationTriggerMessage animationTriggerMessage, RpcParams clientRpcParams = default) { - m_SendTriggerUpdates.Add(new TriggerUpdate() { ClientRpcParams = clientRpcParams, AnimationTriggerMessage = animationTriggerMessage }); + m_SendTriggerUpdates.Add(new TriggerUpdate() { RpcParams = clientRpcParams, AnimationTriggerMessage = animationTriggerMessage }); } internal void QueueTriggerUpdateToServer(NetworkAnimator.AnimationTriggerMessage animationTriggerMessage) @@ -677,8 +677,8 @@ protected virtual bool OnIsServerAuthoritative() private float[] m_LayerWeights; private static byte[] s_EmptyArray = new byte[] { }; private List m_ParametersToUpdate; - private List m_ClientSendList; - private ClientRpcParams m_ClientRpcParams; + private RpcParams m_RpcParams; + private RpcTargetGroup m_TargetGroup; private AnimationMessage m_AnimationMessage; private NetworkAnimatorStateChangeHandler m_NetworkAnimatorStateChangeHandler; @@ -734,6 +734,8 @@ public override void OnDestroy() { SpawnCleanup(); + m_TargetGroup?.Dispose(); + if (m_CachedAnimatorParameters != null && m_CachedAnimatorParameters.IsCreated) { m_CachedAnimatorParameters.Dispose(); @@ -901,12 +903,12 @@ public override void OnNetworkSpawn() NetworkLog.LogWarningServer($"[{gameObject.name}][{nameof(NetworkAnimator)}] {nameof(Animator)} is not assigned! Animation synchronization will not work for this instance!"); } - m_ClientSendList = new List(128); - m_ClientRpcParams = new ClientRpcParams + m_TargetGroup = RpcTarget.Group(new List(128), RpcTargetUse.Persistent) as RpcTargetGroup; + m_RpcParams = new RpcParams() { - Send = new ClientRpcSendParams + Send = new RpcSendParams() { - TargetClientIds = m_ClientSendList + Target = m_TargetGroup } }; @@ -1178,27 +1180,27 @@ internal void CheckForAnimatorChanges() else if (!IsServer && IsOwner) { - SendAnimStateServerRpc(m_AnimationMessage); + SendServerAnimStateRpc(m_AnimationMessage); } else { // Just notify all remote clients and not the local server - m_ClientSendList.Clear(); + m_TargetGroup.Clear(); foreach (var clientId in m_LocalNetworkManager.ConnectionManager.ConnectedClientIds) { if (clientId == m_LocalNetworkManager.LocalClientId || !NetworkObject.Observers.Contains(clientId)) { continue; } - m_ClientSendList.Add(clientId); + m_TargetGroup.Add(clientId); } - m_ClientRpcParams.Send.TargetClientIds = m_ClientSendList; - SendAnimStateClientRpc(m_AnimationMessage, m_ClientRpcParams); + m_RpcParams.Send.Target = m_TargetGroup; + SendClientAnimStateRpc(m_AnimationMessage, m_RpcParams); } } } - private void SendParametersUpdate(ClientRpcParams clientRpcParams = default, bool sendDirect = false) + private void SendParametersUpdate(RpcParams rpcParams = default, bool sendDirect = false) { WriteParameters(ref m_ParameterWriter); @@ -1221,17 +1223,17 @@ private void SendParametersUpdate(ClientRpcParams clientRpcParams = default, boo { if (!IsServer) { - SendParametersUpdateServerRpc(parametersMessage); + SendServerParametersUpdateRpc(parametersMessage); } else { if (sendDirect) { - SendParametersUpdateClientRpc(parametersMessage, clientRpcParams); + SendClientParametersUpdateRpc(parametersMessage, rpcParams); } else { - m_NetworkAnimatorStateChangeHandler.SendParameterUpdate(parametersMessage, clientRpcParams); + m_NetworkAnimatorStateChangeHandler.SendParameterUpdate(parametersMessage, rpcParams); } } } @@ -1498,8 +1500,8 @@ internal void UpdateAnimationState(AnimationState animationState) /// Server-side animator parameter update request /// The server sets its local parameters and then forwards the message to the remaining clients /// - [ServerRpc] - private unsafe void SendParametersUpdateServerRpc(ParametersUpdateMessage parametersUpdate, ServerRpcParams serverRpcParams = default) + [Rpc(SendTo.Server, AllowTargetOverride = true, InvokePermission = RpcInvokePermission.Owner)] + private unsafe void SendServerParametersUpdateRpc(ParametersUpdateMessage parametersUpdate, RpcParams rpcParams = default) { if (IsServerAuthoritative()) { @@ -1507,7 +1509,7 @@ private unsafe void SendParametersUpdateServerRpc(ParametersUpdateMessage parame } else { - if (serverRpcParams.Receive.SenderClientId != OwnerClientId) + if (rpcParams.Receive.SenderClientId != OwnerClientId) { return; } @@ -1518,26 +1520,26 @@ private unsafe void SendParametersUpdateServerRpc(ParametersUpdateMessage parame return; } - m_ClientSendList.Clear(); + m_TargetGroup.Clear(); foreach (var clientId in connectedClientIds) { - if (clientId == serverRpcParams.Receive.SenderClientId || clientId == NetworkManager.ServerClientId || !NetworkObject.Observers.Contains(clientId)) + if (clientId == rpcParams.Receive.SenderClientId || clientId == NetworkManager.ServerClientId || !NetworkObject.Observers.Contains(clientId)) { continue; } - m_ClientSendList.Add(clientId); + m_TargetGroup.Add(clientId); } - m_ClientRpcParams.Send.TargetClientIds = m_ClientSendList; - m_NetworkAnimatorStateChangeHandler.SendParameterUpdate(parametersUpdate, m_ClientRpcParams); + m_RpcParams.Send.Target = m_TargetGroup; + m_NetworkAnimatorStateChangeHandler.SendParameterUpdate(parametersUpdate, m_RpcParams); } } /// /// Distributed Authority: Updates the client's animator's parameters /// - [Rpc(SendTo.NotAuthority)] - internal void SendParametersUpdateRpc(ParametersUpdateMessage parametersUpdate) + [Rpc(SendTo.NotAuthority, AllowTargetOverride = true, InvokePermission = RpcInvokePermission.Owner)] + internal void SendParametersUpdateRpc(ParametersUpdateMessage parametersUpdate, RpcParams rpcParams = default) { m_NetworkAnimatorStateChangeHandler.ProcessParameterUpdate(parametersUpdate); } @@ -1545,11 +1547,11 @@ internal void SendParametersUpdateRpc(ParametersUpdateMessage parametersUpdate) /// /// Client-Server: Updates the client's animator's parameters /// - [ClientRpc] - internal void SendParametersUpdateClientRpc(ParametersUpdateMessage parametersUpdate, ClientRpcParams clientRpcParams = default) + [Rpc(SendTo.NotMe, AllowTargetOverride = true)] + internal void SendClientParametersUpdateRpc(ParametersUpdateMessage parametersUpdate, RpcParams rpcParams = default) { var isServerAuthoritative = IsServerAuthoritative(); - if (!isServerAuthoritative && !IsOwner || isServerAuthoritative) + if ((!isServerAuthoritative && !IsOwner) || (isServerAuthoritative && !IsServer)) { m_NetworkAnimatorStateChangeHandler.ProcessParameterUpdate(parametersUpdate); } @@ -1559,8 +1561,8 @@ internal void SendParametersUpdateClientRpc(ParametersUpdateMessage parametersUp /// Server-side animation state update request /// The server sets its local state and then forwards the message to the remaining clients /// - [ServerRpc] - private void SendAnimStateServerRpc(AnimationMessage animationMessage, ServerRpcParams serverRpcParams = default) + [Rpc(SendTo.Server, AllowTargetOverride = true)] + private void SendServerAnimStateRpc(AnimationMessage animationMessage, RpcParams rcParams = default) { if (IsServerAuthoritative()) { @@ -1568,7 +1570,7 @@ private void SendAnimStateServerRpc(AnimationMessage animationMessage, ServerRpc } else { - if (serverRpcParams.Receive.SenderClientId != OwnerClientId) + if (rcParams.Receive.SenderClientId != OwnerClientId) { return; } @@ -1584,25 +1586,26 @@ private void SendAnimStateServerRpc(AnimationMessage animationMessage, ServerRpc return; } - m_ClientSendList.Clear(); + m_TargetGroup.Clear(); + foreach (var clientId in connectedClientIds) { - if (clientId == serverRpcParams.Receive.SenderClientId || clientId == NetworkManager.ServerClientId || !NetworkObject.Observers.Contains(clientId)) + if (clientId == rcParams.Receive.SenderClientId || clientId == NetworkManager.ServerClientId || !NetworkObject.Observers.Contains(clientId)) { continue; } - m_ClientSendList.Add(clientId); + m_TargetGroup.Add(clientId); } - m_ClientRpcParams.Send.TargetClientIds = m_ClientSendList; - m_NetworkAnimatorStateChangeHandler.SendAnimationUpdate(animationMessage, m_ClientRpcParams); + m_RpcParams.Send.Target = m_TargetGroup; + m_NetworkAnimatorStateChangeHandler.SendAnimationUpdate(animationMessage, m_RpcParams); } } /// /// Client-Server: Internally-called RPC client-side receiving function to update animation states /// - [ClientRpc] - internal void SendAnimStateClientRpc(AnimationMessage animationMessage, ClientRpcParams clientRpcParams = default) + [Rpc(SendTo.NotServer, AllowTargetOverride = true)] + internal void SendClientAnimStateRpc(AnimationMessage animationMessage, RpcParams rpcParams = default) { ProcessAnimStates(animationMessage); } @@ -1610,8 +1613,8 @@ internal void SendAnimStateClientRpc(AnimationMessage animationMessage, ClientRp /// /// Distributed Authority: Internally-called RPC non-authority receiving function to update animation states /// - [Rpc(SendTo.NotAuthority)] - internal void SendAnimStateRpc(AnimationMessage animationMessage) + [Rpc(SendTo.NotAuthority, AllowTargetOverride = true, InvokePermission = RpcInvokePermission.Owner)] + internal void SendAnimStateRpc(AnimationMessage animationMessage, RpcParams rpcParams = default) { ProcessAnimStates(animationMessage); } @@ -1643,11 +1646,11 @@ private void ProcessAnimStates(AnimationMessage animationMessage) /// Server-side trigger state update request /// The server sets its local state and then forwards the message to the remaining clients /// - [ServerRpc] - internal void SendAnimTriggerServerRpc(AnimationTriggerMessage animationTriggerMessage, ServerRpcParams serverRpcParams = default) + [Rpc(SendTo.Server, AllowTargetOverride = true)] + internal void SendServerAnimTriggerRpc(AnimationTriggerMessage animationTriggerMessage, RpcParams rpcParams = default) { // Ignore if a non-owner sent this. - if (serverRpcParams.Receive.SenderClientId != OwnerClientId) + if (rpcParams.Receive.SenderClientId != OwnerClientId) { if (m_LocalNetworkManager.LogLevel == LogLevel.Developer) { @@ -1661,23 +1664,22 @@ internal void SendAnimTriggerServerRpc(AnimationTriggerMessage animationTriggerM var connectedClientIds = m_LocalNetworkManager.ConnectionManager.ConnectedClientIds; - m_ClientSendList.Clear(); + m_TargetGroup.Clear(); foreach (var clientId in connectedClientIds) { if (clientId == NetworkManager.ServerClientId || !NetworkObject.Observers.Contains(clientId)) { continue; } - m_ClientSendList.Add(clientId); + m_TargetGroup.Add(clientId); } if (IsServerAuthoritative()) { - m_NetworkAnimatorStateChangeHandler.QueueTriggerUpdateToClient(animationTriggerMessage, m_ClientRpcParams); + m_NetworkAnimatorStateChangeHandler.QueueTriggerUpdateToClient(animationTriggerMessage, m_RpcParams); } else if (connectedClientIds.Count > (IsHost ? 2 : 1)) { - m_ClientSendList.Remove(serverRpcParams.Receive.SenderClientId); - m_NetworkAnimatorStateChangeHandler.QueueTriggerUpdateToClient(animationTriggerMessage, m_ClientRpcParams); + m_NetworkAnimatorStateChangeHandler.QueueTriggerUpdateToClient(animationTriggerMessage, m_RpcParams); } } @@ -1694,8 +1696,8 @@ private void InternalSetTrigger(int hash, bool isSet = true) /// a trigger to a client /// /// the payload containing the trigger data to apply - [Rpc(SendTo.NotAuthority)] - internal void SendAnimTriggerRpc(AnimationTriggerMessage animationTriggerMessage) + [Rpc(SendTo.NotAuthority, AllowTargetOverride = true, InvokePermission = RpcInvokePermission.Owner)] + internal void SendAnimTriggerRpc(AnimationTriggerMessage animationTriggerMessage, RpcParams rpcParams = default) { InternalSetTrigger(animationTriggerMessage.Hash, animationTriggerMessage.IsTriggerSet); } @@ -1706,8 +1708,8 @@ internal void SendAnimTriggerRpc(AnimationTriggerMessage animationTriggerMessage /// /// the payload containing the trigger data to apply /// unused - [ClientRpc] - internal void SendAnimTriggerClientRpc(AnimationTriggerMessage animationTriggerMessage, ClientRpcParams clientRpcParams = default) + [Rpc(SendTo.NotServer, AllowTargetOverride = true)] + internal void SendClientAnimTriggerRpc(AnimationTriggerMessage animationTriggerMessage, RpcParams rpcParams = default) { InternalSetTrigger(animationTriggerMessage.Hash, animationTriggerMessage.IsTriggerSet); } @@ -1750,10 +1752,7 @@ public void SetTrigger(int hash, bool setTrigger = true) { /// as to why we queue m_NetworkAnimatorStateChangeHandler.QueueTriggerUpdateToClient(animTriggerMessage); - if (!IsHost) - { - InternalSetTrigger(hash, setTrigger); - } + InternalSetTrigger(hash, setTrigger); } else { From 02fa029513d70a51aae42273d1c00ae3f6d265c6 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Sun, 2 Nov 2025 17:57:59 -0600 Subject: [PATCH 11/19] update Adding change log entries. --- com.unity.netcode.gameobjects/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/com.unity.netcode.gameobjects/CHANGELOG.md b/com.unity.netcode.gameobjects/CHANGELOG.md index 2eb3776c3b..b18ce25ad6 100644 --- a/com.unity.netcode.gameobjects/CHANGELOG.md +++ b/com.unity.netcode.gameobjects/CHANGELOG.md @@ -11,10 +11,12 @@ Additional documentation and release notes are available at [Multiplayer Documen ### Added - It is now possible to control which port clients will bind to using the `UnityTransport.ConnectionData.ClientBindPort` field. If not set, clients will bind to an ephemeral port (same as before this change). (#3764) - +- Added `NetworkAnimator.AuthorityMode` which allows you to select whether the `NetworkAnimator` will use a server or owner authority model for state updates (like `NetworkTransform`). (#3586) +- Added the ability to select which `Animator` parameters the authority `NetworkAnimator` instance should synchronize. This can be done via the inspector view interface or during runtime via `NetworkAnimator.EnableParameterSynchronization`. (#3586) ### Changed +- Changed NetworkAnimator's to use the `RpcAttribute` along with the appropriate `SendTo` parameter. (#3586) ### Deprecated @@ -24,6 +26,7 @@ Additional documentation and release notes are available at [Multiplayer Documen ### Fixed +- Fixed issue with authority animator instance sending itself RPCs. (#3586) ### Security From a2f52f7847995e1cd3b3c8aef7a93fcabddf824a Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Sun, 2 Nov 2025 18:00:49 -0600 Subject: [PATCH 12/19] style adjusting typo --- com.unity.netcode.gameobjects/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.unity.netcode.gameobjects/CHANGELOG.md b/com.unity.netcode.gameobjects/CHANGELOG.md index b18ce25ad6..5c7acf602b 100644 --- a/com.unity.netcode.gameobjects/CHANGELOG.md +++ b/com.unity.netcode.gameobjects/CHANGELOG.md @@ -16,7 +16,7 @@ Additional documentation and release notes are available at [Multiplayer Documen ### Changed -- Changed NetworkAnimator's to use the `RpcAttribute` along with the appropriate `SendTo` parameter. (#3586) +- Changed NetworkAnimator to use the `RpcAttribute` along with the appropriate `SendTo` parameter. (#3586) ### Deprecated From 7f90dbc79d56c48b48c5d2bacca8e4e29bf5605f Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Fri, 14 Nov 2025 13:38:40 -0600 Subject: [PATCH 13/19] update Implementing suggested changes. --- .../Runtime/Components/NetworkAnimator.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 1118ab7f73..ee69f738df 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -669,7 +669,11 @@ public bool IsServerAuthoritative() /// protected virtual bool OnIsServerAuthoritative() { - return m_LocalNetworkManager && m_LocalNetworkManager.DistributedAuthorityMode ? true : AuthorityMode == AuthorityModes.Server; + if (m_LocalNetworkManager && m_LocalNetworkManager.DistributedAuthorityMode) + { + return true; + } + return AuthorityMode == AuthorityModes.Server; } private int[] m_TransitionHash; @@ -760,10 +764,7 @@ protected virtual void Awake() foreach (var parameterEntry in AnimatorParameterEntries.ParameterEntries) { - if (!AnimatorParameterEntryTable.ContainsKey(parameterEntry.NameHash)) - { - AnimatorParameterEntryTable.Add(parameterEntry.NameHash, parameterEntry); - } + AnimatorParameterEntryTable.TryAdd(parameterEntry.NameHash, parameterEntry); } int layers = m_Animator.layerCount; @@ -1692,8 +1693,8 @@ private void InternalSetTrigger(int hash, bool isSet = true) } /// - /// Distributed Authority: Internally-called RPC client receiving function to update a trigger when the server wants to forward - /// a trigger to a client + /// Distributed Authority: Internally-called RPC client receiving function to update a trigger when the authority wants + /// to forward a trigger to a client /// /// the payload containing the trigger data to apply [Rpc(SendTo.NotAuthority, AllowTargetOverride = true, InvokePermission = RpcInvokePermission.Owner)] From ce3d0532a26bea2ac466039e4529dad802048c58 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Mon, 17 Nov 2025 11:17:03 -0600 Subject: [PATCH 14/19] fix Fixing issue discovered by Noellie in the HasAuthority check. --- .../Runtime/Components/NetworkAnimator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index ee69f738df..5d11bbfcea 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -78,7 +78,7 @@ private void FlushMessages() private bool HasAuthority() { var isServerAuthority = m_NetworkAnimator.IsServerAuthoritative(); - return (!isServerAuthority && m_NetworkAnimator.IsOwner) || (isServerAuthority && m_NetworkAnimator.IsServer); + return (!isServerAuthority && m_NetworkAnimator.IsOwner) || (isServerAuthority && (m_NetworkAnimator.IsServer || m_NetworkAnimator.IsOwner)); } /// From a16bbf8a0beace5e05c5c1889cbb84e22395d74a Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Mon, 17 Nov 2025 11:33:50 -0600 Subject: [PATCH 15/19] update fixing change log --- com.unity.netcode.gameobjects/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/com.unity.netcode.gameobjects/CHANGELOG.md b/com.unity.netcode.gameobjects/CHANGELOG.md index 694e26f647..e23650d168 100644 --- a/com.unity.netcode.gameobjects/CHANGELOG.md +++ b/com.unity.netcode.gameobjects/CHANGELOG.md @@ -26,8 +26,8 @@ Additional documentation and release notes are available at [Multiplayer Documen ### Fixed -- Fixed issue with authority animator instance sending itself RPCs. (#3586) - Fixed issue where the `Axis to Synchronize` toggles didn't work with multi object editing in `NetworkTransform`. (#3781) +- Fixed issue with authority animator instance sending itself RPCs. (#3586) ### Security From 2510c991e51f225d574c5def334a7d312f304bdc Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Tue, 18 Nov 2025 16:01:06 -0600 Subject: [PATCH 16/19] update Always assure owner authoritative mode when in distributed authority mode. --- .../Runtime/Components/NetworkAnimator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs index 5d11bbfcea..db2edff3df 100644 --- a/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs +++ b/com.unity.netcode.gameobjects/Runtime/Components/NetworkAnimator.cs @@ -669,9 +669,9 @@ public bool IsServerAuthoritative() /// protected virtual bool OnIsServerAuthoritative() { - if (m_LocalNetworkManager && m_LocalNetworkManager.DistributedAuthorityMode) + if (DistributedAuthorityMode) { - return true; + return false; } return AuthorityMode == AuthorityModes.Server; } From ab931fcd31af53eb9b65ef346e514bf45748ad88 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Wed, 19 Nov 2025 14:12:18 -0600 Subject: [PATCH 17/19] doc update Updating the NetworkAnimator documentation for this fix. --- .../components/helper/networkanimator.md | 391 ++++++++++++++++-- .../animator-idle-walk-run.png | Bin 0 -> 72176 bytes .../networkanimator/animatorauthority.png | Bin 0 -> 15718 bytes .../networkanimator/parametersnosynch.png | Bin 0 -> 50143 bytes .../parametersynchronization.png | Bin 0 -> 4003757 bytes .../networkanimator/usingnetworkanimator.png | Bin 0 -> 88978 bytes 6 files changed, 353 insertions(+), 38 deletions(-) create mode 100644 com.unity.netcode.gameobjects/Documentation~/images/networkanimator/animator-idle-walk-run.png create mode 100644 com.unity.netcode.gameobjects/Documentation~/images/networkanimator/animatorauthority.png create mode 100644 com.unity.netcode.gameobjects/Documentation~/images/networkanimator/parametersnosynch.png create mode 100644 com.unity.netcode.gameobjects/Documentation~/images/networkanimator/parametersynchronization.png create mode 100644 com.unity.netcode.gameobjects/Documentation~/images/networkanimator/usingnetworkanimator.png diff --git a/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md b/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md index 5f1bd1371b..125737c64e 100644 --- a/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md +++ b/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md @@ -3,36 +3,32 @@ The NetworkAnimator component provides you with a fundamental example of how to synchronize animations during a network session. Animation states are synchronized with players joining an existing network session and any client already connected before the animation state changing. * Players joining an existing network session will be synchronized with: - * All the `Animator`'s current properties and states. - * *With exception to `Animator` trigger properties. These are only synchronized with already connected clients.* - * Any in progress transition + * All the `Animator`'s current parameters and states. + * With the following exceptions: + * `Animator` trigger parameters. + * _These are only synchronized with already connected clients._ + * _However, late joining clients will get synchronized with the `Animator`'s current state_. + * Any `Animator` parameter specifically excluded from being synchronized. + * Any in progress transition. * Players already connected will be synchronized with changes to `Animator`: - * States - * Transitions - * Properties - * NetworkAnimator will only synchronize properties that have changed since the earlier frame property values. - * Since triggers are similar to an "event," when an `Animator` property is set to `true` it will always be synchronized. + * States + * Transitions + * Parameters + * NetworkAnimator will only synchronize parameters that have changed since the previous frame's parameter values. + * Since triggers are similar to an "event," when an `Animator` parameter is set to `true` it will always be synchronized. -NetworkAnimator can operate in two authoritative modes: - -* Server Authoritative (default): Server initiates animation state changes. - * Owner's can still invoke `NetworkAnimator.SetTrigger`. -* Client Authoritative: Client owners start animation state changes. +NetworkAnimator can operate in two authority modes: +* Server Authoritative (default): Server dictates changes to `Animator` state(s) and/or parameters. + * _Owner's can still invoke `NetworkAnimator.SetTrigger`._ +* Client Authoritative: The owner of the spawned `NetworkObject` dictates changes to `Animator` state(s) and/or parameters. > [!NOTE] -> You need to use `Unity.Netcode.Components` to reference components such as NetworkAnimator. - -## Animator Trigger Property - -The `Animator` trigger property type ("trigger") is basically nothing more than a Boolean value that, when set to `true`, will get automatically reset back to `false` after the `Animator` component has processed the trigger. Usually, a trigger is used to start a transition between `Animator` layer states. In this sense, one can think of a trigger as a way to signal the "beginning of an event." Because trigger properties have this unique behavior, they **require** that you to set the trigger value via the `NetworkAnimator.SetTrigger` method. - -> [!NOTE] -> If you set a trigger property using `Animator.SetTrigger` then this won't be synchronized with non-owner clients. +> You need to include `Unity.Netcode.Components` as a using directive in order to reference components such as NetworkAnimator. ## Server Authoritative Mode -The default setting for NetworkAnimator is server authoritative mode. When operating in server authoritative mode, any animation state changes that are set (triggers) or detected (change in layer, state, or any `Animator` properties excluding triggers) on the server side will be synchronized with all clients. Because the server initiates any synchronization of changes to an `Animator` 's state, a client that's the owner of the NetworkObject associated with the NetworkAnimator can lag by roughly the full round trip time (RTT). Below is a timing diagram to show this: +The default setting for NetworkAnimator is server authoritative mode. When operating in server authoritative mode, any animation state changes that are set (triggers) or detected (change in layer, state, or any `Animator` parameters excluding triggers) on the server side will be synchronized with all clients. Because the server initiates any synchronization of changes to an `Animator` 's state, the owner of the NetworkObject associated with the NetworkAnimator can lag by roughly the full round trip time (RTT). Below is a timing diagram to show this: ![ServerAuthMode](../../images/NetworkAnimatorServerAuthTiming.png) @@ -77,7 +73,7 @@ In the above diagram, it shows that the owner client has an `Animator` state cha * A host lags behind the owner client's animation by roughly half RTT. > [!NOTE] -> The same rule for setting trigger properties still applies to owner clients. As such, if you want to programmatically set a trigger then you still need to use `NetworkAnimator.SetTrigger`. +> The same rule for setting trigger parameters still applies to owner clients. As such, if you want to programmatically set a trigger then you still need to use `NetworkAnimator.SetTrigger`. ## Using NetworkAnimator @@ -86,41 +82,360 @@ Using NetworkAnimator is a pretty straight forward approach with the only subtle > [!NOTE] > NetworkAnimator is one of several possible ways to synchronize animations during a network session. Netcode for GameObjects provides you with the building blocks (RPCs, NetworkVariables, and Custom Messages) needed to create a completely unique animation synchronization system that has a completely different and potentially more optimized approach. NetworkAnimator is a straight forward approach provided for users already familiar with the `Animator` component and, depending upon your project's design requirements, might be all that you need. -### Server Authoritative +### Changing meshes + +When swapping a skinned mesh with another re-parented skinned mesh, you should invoke the `Rebind` method on the `Animator` component (`Animator.Rebind()`). + +### Assigning the animator -If you decide you want to use the server authoritative model, then you can add a NetworkAnimator component to either the same GameObject that has the NetworkObject component attached to it or any child GameObject. In the below screenshot, you can see a network Prefab that houses two authoritative models. The `NetworkAnimatorCube-Server` GameObject has an `Animator` component, an `AnimatedCubeController` component (used for manual testing), and the NetworkAnimator component that has a reference to the `Animator` component. +![Usage-1](../../images/networkanimator/usingnetworkanimator.png) -![Usage-1](../../images/NetworkAnimatorUsage-1.png) +Upon adding a `NetowrkAnimator` component to a network prefab, you will need to drag and drop the `Animator` component onto the **Animator** field within the inspector view. The `Animator` component can be on the root `GameObject` of the network prefab or a child under the root `GameObject`. -### Owner Authoritative +### Selecting the authority mode -If you decide you want to use the owner authoritative model, then (for example purposes) you would use your derived `OwnerNetworkAnimator` component as opposed to the default NetworkAnimator component like in the screenshot below: +The `NetworkAnimator` authority mode determines which instance of a spawned network prefab pushes updates to the `Animator`'s state. -![Usage-1](../../images/NetworkAnimatorUsage-2.png) +> [!NOTE] +> If you are upgrading from an older version of Netcode for GameObjects, then using this legacy/alternate approach still works and will be honored. The value returned from an overridden `NetworkAnimator.OnIsServerAuthoritative` will be used as opposed to the more recent update where you can just select the authority model within the inspector view. + +In earlier versions of Netcode for GameObjects, to change the authority mode of a `NetworkAnimator` you would need to: + +* Derive from the `NetworkAnimator` class. +* Override the `NetworkAnimator.OnIsServerAuthoritative` method. + * Returning `true` would make the server the animator authority. + * Returning `false` would make the owner the animator authority. + +With the updated NetworkAnimator, you now can just select which authority model you want to use from within the inspector view: + +![Usage-1](../../images/networkanimator/animatorauthority.png) > [!NOTE] -> While it isn't advised to have different NetworkAnimator authoritative models "under the same root network Prefab GameObject, " you can have multiple children that each have their own `Animator` and NetworkAnimator all housed under a single NetworkObject and all use the same authoritative model. However, you should always consider the balance between performance (CPU or bandwidth consumption) and convenience/modularity. +> Using the `NetworkAnimator.OnIsServerAuthoritative` still works and will supersede the NetworkAnimator's **Authority Mode** setting. -### Changing Animator Properties +### Changing Animator parameters -For all `Animator` properties (except for triggers), you can set them directly via the `Animator` class. As an example, you might use the player's normalized velocity as a way to control the walking or running animation of a player. You might have an `Animator` `float` property called "AppliedMotion" that you would set on the authoritative instance (server or owner) like such: +For all `Animator` parameters (except for triggers), you can set them directly via the `Animator` class. As an example, you might want to incorporate a player jumping and need to be able to handle transitioning out of the later portion of the sequence where the player is "falling" from the jump (or falling when walking off of the edge of a platform). You might have a `bool` parameter called "Grounded" that you need to set when the player is not grounded. The straight forward way would be to set the value on the authoritative instance (server or owner) like such: ```csharp -public void ApplyMotion(Vector3 playerVelocity) +m_Animator.SetFloat("Grounded", false); +``` + +_(In the above script, `m_Animator` is a reference to the `Animator` component.)_ + +The above example works, but in reality you would want to pre-calculate the hash value of the parameter's name and use that pre-calculated value to apply updates to parameters. Below provides an example of how you can accomplish this: + +```csharp +private int m_GroundedParameterId; +private bool m_WasGrounded; +private Animator m_Animator; +private CharacterController m_CharacterController; + +protected override void OnNetworkPreSpawn(ref NetworkManager networkManager) { - m_Animator.SetFloat("AppliedMotion", playerVelocity.normalized.magnitude); + // Pre-calculate the hash for quick lookup. + m_GroundedParameterId = Animator.StringToHash("Grounded"); + // Get the CharacterController. + m_CharacterController = GetComponent(); +} + +private void CheckForFalling() +{ + // If the last status of being grounded is not the current. + if (m_CharacterController.isGrounded != m_WasGrounded) + { + // Set the Grounded parameter to match the change in the grounded state. + m_Animator.SetBool(m_GroundedParameterId, m_CharacterController.isGrounded); + // Update to be able to detect when it changes back. + m_WasGrounded = m_CharacterController.isGrounded; + } } ``` -For triggers you always want to use NetworkAnimator. One example might be that you use a trigger, called it " `IsJumping`, " to start a blended transition between the player's walking/running animation and the jumping animation: +## Animator trigger parameter + +The `Animator` trigger parameter type ("trigger") is basically nothing more than a Boolean value that, when set to `true`, will get automatically reset back to `false` after the `Animator` component has processed the trigger. Usually, a trigger is used to start a transition between `Animator` layer states. In this sense, one can think of a trigger as a way to signal the "beginning of an event". Because trigger parameters have this unique behavior, they **require** that you to set the trigger value via the `NetworkAnimator.SetTrigger` method. + +> [!NOTE] +> If you set a trigger parameter using `Animator.SetTrigger` then this trigger sequence/transition won't be properly synchronized with the non-authority clone instances. + +An example might be that you use a trigger parameter called `IsJumping` to start a blended transition between the player's walking/running animation and the jumping animation. The below script adds **m_NetworkAnimator** which is assigned during `OnNetworkPreSpawn` (_unless you need to access it in `Start` it is recommended to handle getting components within `OnNetworkPreSpawn` as this will be invoked prior to `Start` when first spawning an instance_). ```csharp +private int m_GroundedParameterId; +private int m_JumpingParameterId; +private bool m_WasGrounded; +private Animator m_Animator; +private NetworkAnimator m_NetworkAnimator; +private CharacterController m_CharacterController; + +protected override void OnNetworkPreSpawn(ref NetworkManager networkManager) +{ + // Pre-calculate the hash values for performance purposes. + m_GroundedParameterId = Animator.StringToHash("Grounded"); + m_JumpingParameterId = Animator.StringToHash("IsJumping"); + + // Get the CharacterController. + m_CharacterController = GetComponent(); + // Get the NetworkAnimator component. + m_NetworkAnimator = GetComponent(); +} + +private void CheckForFalling() +{ + // If the last status of being grounded is not the current. + if (m_CharacterController.isGrounded != m_WasGrounded) + { + // Set the Grounded parameter to match the change in the grounded state. + m_Animator.SetBool(m_GroundedParameterId, m_CharacterController.isGrounded); + // Update to be able to detect when it changes back. + m_WasGrounded = m_CharacterController.isGrounded; + } +} + public void SetPlayerJumping(bool isJumping) { - m_NetworkAnimator.SetTrigger("IsJumping"); + // You only need to pass in the parameters hash/id to set the trigger + m_NetworkAnimator.SetTrigger(m_JumpingParameterId); } ``` +## Excluding parameters from being synchronized + +Now that you know about setting the authority mode and changing parameters, it is time to think about which parameters you want synchronized. Initially you might feel that all parameters need synchronization, however NetworkAnimator will synchronize any changes to any parameters marked for synchronization. + +This can become most problematic with `float` parameters that change often. As an example, you might have a `float` parameter called "Speed" which dictates the speed at which the current animation is played. This value could be directly set from a player's actual linear velocity which would most definitively be different each frame while a player is walking or running around. The end result is that for each spawned authority instance of any given network prefab that uses this kind of approach would generate at least one RPC per frame and that can exhaust transport resources and generate a bunch of network traffic. + > [!NOTE] -> Changing meshes
-> When swapping a skinned mesh with another reparented skinned mesh, you can invoke the `Rebind ` method on the `Animator` components: `Animator.Rebind()`. +> Taking the above scenario into consideration, if you had 300 spawned instances where each authority instance generated 1 RPC per instance per frame you would generate 300 messages per frame or (if running at 60hz) 18,000 messages per second. While Netcode for GameObjects will batch messages by combining them into a single message, it would still generate (at a minimum) a reliable fragmented sequenced message that is fragmented across ~5 UTP messages per frame. This would lead to latency and performance issues. + +Fortunately, NetworkAnimator provides you with the ability to enable or disable any animator parameter from being synchronized within the **Animator Parameter Entries** field: + +![Usage-1](../../images/networkanimator/parametersynchronization.png) + +When expanding this list of parameters, you will note that it also provides the hash value of the parameter's name (which can be copied), the parameter type, and a **Synchronize** field. By default, all parameters are marked for synchronization. + +### Non-synchronized parameters + +How you want to handle updating parameters that are not synchronized is really dependent upon what kind of approach best fits your project's goals. Fortunately, there are two ways to handle this: + +* Synchronize the values using your own custom solution + * You can opt to send the values at a specific interval via RPC or use a NetworkVariable that will synchronize any delta each network tick. + * _This still contributes to the over-all bandwidth and processing time, but can provide you with the ability to lerp between the previous and current value over (n) period of time._ +* Update the parameters locally based on values that you already have access to. + * This is the "bandwidth free" approach, but does require some additional script to handle this. + +#### Updating locally + +Since this option is basically "bandwidth free" and is most likely the first area you might be interested in investigating, we will dive a bit deeper to provide one common parameter that can be handled locally: **Speed**. + +The scenario: + +* You are using a modified version of the ThirdPersonController or are using a similar approach where you have two parameters that determine how quickly a player might play a walking or running animation: + * Speed parameter: + * Updated each frame based on the player's input. + * MotionSpeed: + * Basically determines the magnitude of the player's input. + * _Most of the time this ends up being either 1.0 or 0.0 without an analog device, so the below example assumes you are not using an analog device to control the "amount of speed" to apply over time._ +* You are using a NetworkTransform to synchronize changes in position and rotation or you have written your own custom NetworkBehaviour that accomplishes the same thing. + * You have interpolation enabled or your custom solution uses some form of interpolation where a single state update is applied over (n) period of time (typically a network tick). + +Since each non-authority instance will be receiving delta transform state updates from the authority instance, we know that if the authority instance is moving then it is most likely animating and it is playing those animations based on the "speed" (linear velocity) of the authority player instance. + +This means we should be able to come up with a way, on the non-authority side, to "mock/calculate" some values based on changes to the transform's position on a frame by frame basis. The first thing we would want to do is mark the two parameters as not being synchronized within the NetworkAnimator's **Animator Parameter Entries** list (for this example): + +![Usage-1](../../images/networkanimator/parametersnosynch.png) + +This means the authority will no longer send updates when these two parameters are marked to not be synchronized. The next thing that needs to be done is to come up with a way to calculate these values on non-authority instances based on the non-authority instances movement over time. + +Below is a simple example pseudo/partial script that shows how to accomplishes this: + +```csharp +[Range(0.0001f, 1.0f)] +public float m_NonAuthorityMotionThreshold = 0.01f; +private Vector3 m_LastPosition; +private float m_UnitsPerSecond; +private bool m_WasMoving; + +// Can be used to toggle parameter synchronization during runtime +private NetworkVariable m_SynchronizeSpeedParameter = new NetworkVariable(false); + +protected override void OnNetworkPostSpawn() +{ + _controller.enabled = IsLocalPlayer; + _hasAnimator = TryGetComponent(out _animator); + if (IsLocalPlayer) + { + // Register the authority for both the Update and PostLateUpdate player loop stages + // Update used to handle input and apply motion. + NetworkUpdateLoop.RegisterNetworkUpdate(this, NetworkUpdateStage.Update); + + // PostLateUpdate handles camera rotation adjustments + NetworkUpdateLoop.RegisterNetworkUpdate(this, NetworkUpdateStage.PostLateUpdate); + _input.enabled = true; + _playerInput.enabled = true; + m_SynchronizeSpeedParameter.Value = false; + m_NetworkAnimator.EnableParameterSynchronization("Speed", m_SynchronizeSpeedParameter.Value); + m_NetworkAnimator.EnableParameterSynchronization("MotionSpeed", m_SynchronizeSpeedParameter.Value); + } + else + { + // When a non-authority instance is spawned, it initializes the last known position + m_LastPosition = transform.position; + + // Non-authority instances register for the pre-late update to assure any adjustments to + // position have been applied before calculating the animation speed. + NetworkUpdateLoop.RegisterNetworkUpdate(this, NetworkUpdateStage.PreLateUpdate); + + } + base.OnNetworkPostSpawn(); +} + +public override void OnNetworkPreDespawn() +{ + _controller.enabled = false; + // Before de-spawning, unregister from all updates for this instance + NetworkUpdateLoop.UnregisterAllNetworkUpdates(this); + base.OnNetworkPreDespawn(); +} + +// This class implements INetworkUpdateSystem +public void NetworkUpdate(NetworkUpdateStage updateStage) +{ + if (!IsSpawned) + { + return; + } + + switch (updateStage) + { + + case NetworkUpdateStage.Update: + { + // Authority only + AuthorityUpdate(); + break; + } + case NetworkUpdateStage.PreLateUpdate: + { + if (!m_SynchronizeSpeedParameter.Value) + { + // Non-authority only + NonAuthorityUpdate(); + } + else if (m_WasMoving) + { + // If synchronizing speed and we were moving, then + // reset the fields used to calculate speed + m_WasMoving = false; + m_UnitsPerSecond = 0.0f; + _animationBlend = 0.0f; + _speed = 0.0f; + } + break; + } + case NetworkUpdateStage.PostLateUpdate: + { + // Authority only + CameraRotation(); + break; + } + } +} + +private void NonAuthorityUpdate() +{ + // Get the delta from last frame + var deltaVector3 = transform.position - m_LastPosition; + // An approximated calculation of the potential unity world space units per second by getting the quotient of delta time divided into 1. We are only interested in x and z deltas, so use a Vector2, and then obtain the magnitude of the quotient times the Vector2. + var unitsPerSecond = (new Vector2(deltaVector3.x, deltaVector3.z) * (1.0f / Time.deltaTime)).magnitude; + + // Only trigger when the delta per frame exceeds the non-authority motion threshold + if (unitsPerSecond > m_NonAuthorityMotionThreshold) + { + // if the new delta is > or < the last value stored + if (unitsPerSecond != m_UnitsPerSecond) + { + // Lerp towards the new delta to mock the player input + m_UnitsPerSecond = Mathf.Lerp(m_UnitsPerSecond, unitsPerSecond, Time.deltaTime * SpeedChangeRate); + + // Clamp to the maximum world space units per second + m_UnitsPerSecond = Mathf.Clamp(m_UnitsPerSecond, 0.0f, SprintSpeed); + + // round speed to 3 decimal places like it does with player input + _speed = (float)System.Math.Round(m_UnitsPerSecond, 3); + + // Track that we are now moving + m_WasMoving = true; + } + else + { + // Maintain the current speed + _speed = m_UnitsPerSecond; + } + + // If we are half of the non-authority motion threshold then come to a stop + if (_speed < (m_NonAuthorityMotionThreshold * 0.5f)) + { + _speed = 0f; + m_UnitsPerSecond = 0f; + // Reset the magnitude to zero + _animator.SetFloat(_animIDMotionSpeed, 0.0f); + } + else + { + // Set maximum magnitude + _animator.SetFloat(_animIDMotionSpeed, 1.0f); + } + // Apply the calculated speed value + _animator.SetFloat(_animIDSpeed, _speed); + + } + else if (m_WasMoving) + { + // Reset everything until next motion + m_WasMoving = false; + _animator.SetFloat(_animIDSpeed, 0.0f); + _animator.SetFloat(_animIDMotionSpeed, 0.0f); + m_UnitsPerSecond = 0.0f; + _animationBlend = 0.0f; + _speed = 0.0f; + } + m_LastPosition = transform.position; +} +``` + +**The walk through:** + +* It keeps track of the last known position. + * This is initialized on non-authority instances during post spawn. +* The delta between the last known position and current position is used to determine what our world units per second would be if we maintained that same delta for one second. + * _This could be improved, but provides a reasonably close approximation._ +* We then make sure the (world) units per second exceeds a specific threshold to avoid edge cases. +* If the units per second is larger than the threshold: + * Lerping from the last known units per second value towards the new/current units per second value. + * _This handles "accelerating" towards or away from the current value._ + * Clamp the calculated value to the maximum speed. + * Round the result and assign it to the "_speed" field (from ThirdPersonController). +* Check if the currently known speed is less than a predetermined minimum value. + * _If so, then set the speed and motion speed to zero._ +* Update the local Animator's **Speed** and **MotionSpeed** parameters. + +The end result is that (NetworkAnimator relative) the only time this particular setup would send RPCs would be if the player jumps or falls since speed dictates the idle, walking, and running animations: + +![Usage-1](../../images/networkanimator/animator-idle-walk-run.png) + +### Update a parameter's synchronize during runtime + +You might have noticed a mention of toggling the **Speed** parameter's synchronize value during runtime. Perhaps you have a lot of already existing network prefab assets that might be too time intensive to adjust or you might only want certain instances adjusted. Either case, you can update the synchronization status of a parameter on the authority instance by invoking `NetworkAnimator.EnableParameterSynchronization`. + +Below is an example script that does this when the backslash key is pressed: + +```csharp +if (Input.GetKeyDown(KeyCode.Backslash)) +{ + m_SynchronizeSpeedParameter.Value = !m_SynchronizeSpeedParameter.Value; + m_NetworkAnimator.EnableParameterSynchronization(_animIDSpeed, m_SynchronizeSpeedParameter.Value); + m_NetworkAnimator.EnableParameterSynchronization(_animIDMotionSpeed, m_SynchronizeSpeedParameter.Value); +} +``` diff --git a/com.unity.netcode.gameobjects/Documentation~/images/networkanimator/animator-idle-walk-run.png b/com.unity.netcode.gameobjects/Documentation~/images/networkanimator/animator-idle-walk-run.png new file mode 100644 index 0000000000000000000000000000000000000000..f063a158af231555b5806d1b0cfa5f367dfbac72 GIT binary patch literal 72176 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 (H)&kUkKo3JT>y}rqwaPO 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 z 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 fZfGfd+qOxBC{sU$^WP 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

    }FDK)Mqh6Jl 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
    0tvkM6SKnO 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 literal 0 HcmV?d00001 From 1174b40ec6315a96fd3aca18fe565827e6116f4b Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Wed, 19 Nov 2025 14:38:51 -0600 Subject: [PATCH 18/19] style - PVP PVP-124-2 Removing trailing spaces --- .../components/helper/networkanimator.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md b/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md index 125737c64e..d2681785e8 100644 --- a/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md +++ b/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md @@ -130,7 +130,7 @@ private int m_GroundedParameterId; private bool m_WasGrounded; private Animator m_Animator; private CharacterController m_CharacterController; - + protected override void OnNetworkPreSpawn(ref NetworkManager networkManager) { // Pre-calculate the hash for quick lookup. @@ -168,7 +168,7 @@ private bool m_WasGrounded; private Animator m_Animator; private NetworkAnimator m_NetworkAnimator; private CharacterController m_CharacterController; - + protected override void OnNetworkPreSpawn(ref NetworkManager networkManager) { // Pre-calculate the hash values for performance purposes. @@ -269,7 +269,7 @@ protected override void OnNetworkPostSpawn() // Register the authority for both the Update and PostLateUpdate player loop stages // Update used to handle input and apply motion. NetworkUpdateLoop.RegisterNetworkUpdate(this, NetworkUpdateStage.Update); - + // PostLateUpdate handles camera rotation adjustments NetworkUpdateLoop.RegisterNetworkUpdate(this, NetworkUpdateStage.PostLateUpdate); _input.enabled = true; @@ -299,7 +299,7 @@ public override void OnNetworkPreDespawn() base.OnNetworkPreDespawn(); } -// This class implements INetworkUpdateSystem +// This class implements INetworkUpdateSystem public void NetworkUpdate(NetworkUpdateStage updateStage) { if (!IsSpawned) @@ -325,7 +325,7 @@ public void NetworkUpdate(NetworkUpdateStage updateStage) } else if (m_WasMoving) { - // If synchronizing speed and we were moving, then + // If synchronizing speed and we were moving, then // reset the fields used to calculate speed m_WasMoving = false; m_UnitsPerSecond = 0.0f; @@ -349,8 +349,8 @@ private void NonAuthorityUpdate() var deltaVector3 = transform.position - m_LastPosition; // An approximated calculation of the potential unity world space units per second by getting the quotient of delta time divided into 1. We are only interested in x and z deltas, so use a Vector2, and then obtain the magnitude of the quotient times the Vector2. var unitsPerSecond = (new Vector2(deltaVector3.x, deltaVector3.z) * (1.0f / Time.deltaTime)).magnitude; - - // Only trigger when the delta per frame exceeds the non-authority motion threshold + + // Only trigger when the delta per frame exceeds the non-authority motion threshold if (unitsPerSecond > m_NonAuthorityMotionThreshold) { // if the new delta is > or < the last value stored @@ -364,7 +364,7 @@ private void NonAuthorityUpdate() // round speed to 3 decimal places like it does with player input _speed = (float)System.Math.Round(m_UnitsPerSecond, 3); - + // Track that we are now moving m_WasMoving = true; } @@ -389,7 +389,7 @@ private void NonAuthorityUpdate() } // Apply the calculated speed value _animator.SetFloat(_animIDSpeed, _speed); - + } else if (m_WasMoving) { From a02953afef94afa8b6e43c2c5a7739f7414fa805 Mon Sep 17 00:00:00 2001 From: Amy Reeve Date: Wed, 26 Nov 2025 15:36:20 +0000 Subject: [PATCH 19/19] Docs pass --- .../components/helper/networkanimator.md | 205 ++++++++---------- 1 file changed, 91 insertions(+), 114 deletions(-) diff --git a/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md b/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md index d2681785e8..6954b19bb5 100644 --- a/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md +++ b/com.unity.netcode.gameobjects/Documentation~/components/helper/networkanimator.md @@ -1,51 +1,53 @@ # NetworkAnimator -The NetworkAnimator component provides you with a fundamental example of how to synchronize animations during a network session. Animation states are synchronized with players joining an existing network session and any client already connected before the animation state changing. - -* Players joining an existing network session will be synchronized with: - * All the `Animator`'s current parameters and states. - * With the following exceptions: - * `Animator` trigger parameters. - * _These are only synchronized with already connected clients._ - * _However, late joining clients will get synchronized with the `Animator`'s current state_. - * Any `Animator` parameter specifically excluded from being synchronized. - * Any in progress transition. -* Players already connected will be synchronized with changes to `Animator`: - * States - * Transitions - * Parameters - * NetworkAnimator will only synchronize parameters that have changed since the previous frame's parameter values. - * Since triggers are similar to an "event," when an `Animator` parameter is set to `true` it will always be synchronized. +Use the NetworkAnimator component to synchronize animations during a network session. -NetworkAnimator can operate in two authority modes: +When using the [NetworkAnimator](xref:Unity.Netcode.Components.NetworkAnimator) component, [Animator](https://docs.unity3d.com/Documentation/ScriptReference/Animator.html) animation states are synchronized with players joining an existing network session and any client already connected when the animation state changes. You can also use the NetworkAnimator component as an example of how to create your own custom animation synchronization system. + +## NetworkAnimator overview + + Players joining an existing network session are synchronized with: -* Server Authoritative (default): Server dictates changes to `Animator` state(s) and/or parameters. - * _Owner's can still invoke `NetworkAnimator.SetTrigger`._ -* Client Authoritative: The owner of the spawned `NetworkObject` dictates changes to `Animator` state(s) and/or parameters. +* All the Animator's current parameters and states, with the following exceptions: + * Animator trigger parameters. These are only synchronized with already connected clients. Late joining clients are synchronized with the Animator's current state. + * Any Animator parameter specifically excluded from being synchronized. +* Any in progress transition. + +Players already connected are synchronized with changes to Animator: + +* States +* Transitions +* Parameters + * NetworkAnimator only synchronizes parameters that have changed since the previous frame's parameter values. + * Because triggers are similar to an event, when an Animator parameter is set to `true` it will always be synchronized. > [!NOTE] -> You need to include `Unity.Netcode.Components` as a using directive in order to reference components such as NetworkAnimator. +> You need to include `Unity.Netcode.Components` as a using directive to reference components such as NetworkAnimator. -## Server Authoritative Mode +## Authority modes -The default setting for NetworkAnimator is server authoritative mode. When operating in server authoritative mode, any animation state changes that are set (triggers) or detected (change in layer, state, or any `Animator` parameters excluding triggers) on the server side will be synchronized with all clients. Because the server initiates any synchronization of changes to an `Animator` 's state, the owner of the NetworkObject associated with the NetworkAnimator can lag by roughly the full round trip time (RTT). Below is a timing diagram to show this: +NetworkAnimator can operate in two authority modes: -![ServerAuthMode](../../images/NetworkAnimatorServerAuthTiming.png) +* [Server authoritative (default)](#server-authoritative-mode): The server dictates changes to Animator state(s) and parameters. + * Owners can still invoke `NetworkAnimator.SetTrigger`. +* [Owner authoritative](#owner-authoritative-mode): The owner of the spawned NetworkObject dictates changes to Animator state(s) and parameters. -In the above diagram, a client might be sending the server an RPC to tell the server that the player is performing some kind of action that can change the player's animations (including setting a trigger). Under this scenario, the client sends an RPC to the server (half RTT), the server processes the RPC, the associated `Animator` state changes are detected by the NetworkAnimator (server-side), and then all clients (including the owner client) are synchronized with the changed. +### Server authoritative mode -**Server authoritative model benefits:** +The default setting for NetworkAnimator is server authoritative mode. When operating in server authoritative mode, any animation state changes that are set (triggers) or detected (changes in layer, state, or any Animator parameters excluding triggers) on the server side will be synchronized with all clients. Because the server initiates any synchronization of changes to an Animator's state, the owner of the NetworkObject associated with the NetworkAnimator can lag by roughly the full round-trip time (RTT). The following timing diagram illustrates this: -* If running a plain server (non-host), this model helps reduce the synchronization latency between all client animations. +![ServerAuthMode](../../images/NetworkAnimatorServerAuthTiming.png) -**Server authoritative model drawbacks:** +A client might be sending the server an RPC to tell the server that the player is performing an action that will change the player's animations (including setting a trigger). In this scenario, the client sends an RPC to the server (half RTT), the server processes the RPC, the associated Animator state changes are detected by the NetworkAnimator (server-side), and then all clients (including the owning client) are synchronized with the changes. -* Hosts will always be "slightly ahead" of all other clients which may or may not be an issue for your project. -* Client owners will experience a latency between performing an action (moving, picking something up, anything that causes an `Animator` state change). +| Server authoritative mode benefits | Server authoritative mode drawbacks | +|------------|--------------------------------| +| If you're running a non-host server, this model reduces the synchronization latency between all client animations. | Hosts will always be slightly ahead of all other clients, which may or may not be an issue depending on the needs of your project. | +| | Client owners will experience a latency between performing an action (moving, picking something up, anything that causes an Animator state change) and seeing the corresponding animation update. | -## Owner Authoritative Mode +### Owner authoritative mode -Usually, your project's design (or personal preference) might require that owners are immediately updated to any `Animator` state changes. The most typical reason would be to give the local player with instantaneous visual (animation) feedback. To create an owner authoritative NetworkAnimator you need to create a new class that's derived from NetworkAnimator, override the `NetworkAnimator.OnIsServerAuthoritative` method, and within the overridden `OnIsServerAuthoritative` method you should return false like in the example provided below: +Your project's design (or personal preference) might require that owners are immediately updated when any Animator state changes to provide the local player with instantaneous visual (animation) feedback. To create an owner authoritative NetworkAnimator, you need to create a new class that's derived from NetworkAnimator, override the `NetworkAnimator.OnIsServerAuthoritative` method, and return `false` within the overridden `OnIsServerAuthoritative` method as in the following example: ```csharp public class OwnerNetworkAnimator : NetworkAnimator @@ -57,73 +59,58 @@ Usually, your project's design (or personal preference) might require that owner } ``` -Looking at the timing for an owner authoritative NetworkAnimator, in the diagram below, you can see that while the owner client gets "immediate visual animation response" the non-owner clients end up being roughly one full RTT behind the owner client and a host would be half RTT behind the owner client. +The following diagram illustrates the timing for an owner authoritative NetworkAnimator. While the owner client gets an immediate visual update, non-owner clients end up being roughly one full RTT behind the owner client and a host would be half RTT behind the owner client. ![ServerAuthMode](../../images/NetworkAnimatorOwnerAuthTiming.png) -In the above diagram, it shows that the owner client has an `Animator` state change that's detected by the NetworkAnimator ( `OwnerNetworkAnimator`) which automatically synchronizes the server with the changed state. The server applies the change(s) locally and then broadcasts this state change to all non-owner clients. - -**Owner authoritative model benefits:** +The owner client has an Animator state change that's detected by the NetworkAnimator (`OwnerNetworkAnimator`) which automatically synchronizes the server with the changed state. The server applies the change(s) locally and then broadcasts this state change to all non-owner clients. -* The owner is provided instant visual feedback of `Animator` state changes, which does offer a smoother experience for the local player. - -**Owner authoritative model drawbacks:** - -* Non-owner clients lag behind the owner client's animation by roughly one full RTT. -* A host lags behind the owner client's animation by roughly half RTT. +| Owner authoritative mode benefits | Owner authoritative mode drawbacks | +|------------|--------------------------------| +| The owner gets instant visual feedback of Animator state changes, which provides a smoother experience for the local player. | Non-owner clients lag behind the owner client's animation by roughly one full RTT. | +| | The host lags behind the owner client's animation by roughly half RTT. | > [!NOTE] -> The same rule for setting trigger parameters still applies to owner clients. As such, if you want to programmatically set a trigger then you still need to use `NetworkAnimator.SetTrigger`. +> The same rule for setting trigger parameters applies to owner clients. As such, if you want to programmatically set a trigger then you still need to use `NetworkAnimator.SetTrigger`. ## Using NetworkAnimator -Using NetworkAnimator is a pretty straight forward approach with the only subtle difference being whether you are using a server or owner authoritative model. +Some aspects of how you use NetworkAnimator depends on which authority model you're using: server authoritative or owner authoritative. > [!NOTE] -> NetworkAnimator is one of several possible ways to synchronize animations during a network session. Netcode for GameObjects provides you with the building blocks (RPCs, NetworkVariables, and Custom Messages) needed to create a completely unique animation synchronization system that has a completely different and potentially more optimized approach. NetworkAnimator is a straight forward approach provided for users already familiar with the `Animator` component and, depending upon your project's design requirements, might be all that you need. +> NetworkAnimator is one of several possible ways to synchronize animations during a network session. Netcode for GameObjects provides you with the building blocks (RPCs, NetworkVariables, and custom messages) required to create a custom animation synchronization system to suit your needs. NetworkAnimator is an introductory approach provided for users already familiar with the Animator component and might be all that you need, depending on your project's design requirements. ### Changing meshes -When swapping a skinned mesh with another re-parented skinned mesh, you should invoke the `Rebind` method on the `Animator` component (`Animator.Rebind()`). +When swapping a skinned mesh with another re-parented skinned mesh, invoke the `Rebind` method on the Animator component (`Animator.Rebind()`). -### Assigning the animator +### Assigning the Animator ![Usage-1](../../images/networkanimator/usingnetworkanimator.png) -Upon adding a `NetowrkAnimator` component to a network prefab, you will need to drag and drop the `Animator` component onto the **Animator** field within the inspector view. The `Animator` component can be on the root `GameObject` of the network prefab or a child under the root `GameObject`. +When adding a NetworkAnimator component to a network prefab, you need to drag the Animator component onto the **Animator** field in the **Inspector** window. The Animator component can be on the root GameObject of the network prefab or a child under the root GameObject. ### Selecting the authority mode -The `NetworkAnimator` authority mode determines which instance of a spawned network prefab pushes updates to the `Animator`'s state. - -> [!NOTE] -> If you are upgrading from an older version of Netcode for GameObjects, then using this legacy/alternate approach still works and will be honored. The value returned from an overridden `NetworkAnimator.OnIsServerAuthoritative` will be used as opposed to the more recent update where you can just select the authority model within the inspector view. - -In earlier versions of Netcode for GameObjects, to change the authority mode of a `NetworkAnimator` you would need to: - -* Derive from the `NetworkAnimator` class. -* Override the `NetworkAnimator.OnIsServerAuthoritative` method. - * Returning `true` would make the server the animator authority. - * Returning `false` would make the owner the animator authority. +The NetworkAnimator [authority mode](#authority-modes) determines which instance of a spawned network prefab pushes updates to the Animator's state. You can select which authority mode to use from the **Authority Mode** drop-down menu in the **Inspector** window: -With the updated NetworkAnimator, you now can just select which authority model you want to use from within the inspector view: +![Authority Mode drop-down menu](../../images/networkanimator/animatorauthority.png) -![Usage-1](../../images/networkanimator/animatorauthority.png) +Alternatively, you can change the authority mode by deriving from the `NetworkAnimator` class and overriding the `NetworkAnimator.OnIsServerAuthoritative` method, where returning `true` indicates server authoritative mode and returning `false` indicates owner authoritative mode. > [!NOTE] -> Using the `NetworkAnimator.OnIsServerAuthoritative` still works and will supersede the NetworkAnimator's **Authority Mode** setting. +> Using `NetworkAnimator.OnIsServerAuthoritative` overrides the NetworkAnimator **Authority Mode** setting specified via the **Inspector** window. ### Changing Animator parameters -For all `Animator` parameters (except for triggers), you can set them directly via the `Animator` class. As an example, you might want to incorporate a player jumping and need to be able to handle transitioning out of the later portion of the sequence where the player is "falling" from the jump (or falling when walking off of the edge of a platform). You might have a `bool` parameter called "Grounded" that you need to set when the player is not grounded. The straight forward way would be to set the value on the authoritative instance (server or owner) like such: +You can set all Animator parameters (except for triggers) directly via the Animator class. For example, if you have a jumping animation and need to handle transitioning out of the part of the sequence where the player is falling from the jump (or falling when walking off of the edge of a platform), then you might have a `bool` parameter called `Grounded` that must be set when the player isn't grounded. One way to do this would be to set the value on the authoritative instance (server or owner) as follows: ```csharp +// m_Animator is a reference to the Animator component m_Animator.SetFloat("Grounded", false); ``` -_(In the above script, `m_Animator` is a reference to the `Animator` component.)_ - -The above example works, but in reality you would want to pre-calculate the hash value of the parameter's name and use that pre-calculated value to apply updates to parameters. Below provides an example of how you can accomplish this: +This example works, but ideally you want to pre-calculate the hash value of the parameter's name and use that pre-calculated value to apply updates to parameters. The following provides an example of how you can accomplish this: ```csharp private int m_GroundedParameterId; @@ -154,12 +141,12 @@ private void CheckForFalling() ## Animator trigger parameter -The `Animator` trigger parameter type ("trigger") is basically nothing more than a Boolean value that, when set to `true`, will get automatically reset back to `false` after the `Animator` component has processed the trigger. Usually, a trigger is used to start a transition between `Animator` layer states. In this sense, one can think of a trigger as a way to signal the "beginning of an event". Because trigger parameters have this unique behavior, they **require** that you to set the trigger value via the `NetworkAnimator.SetTrigger` method. +The Animator trigger parameter type is a Boolean value that, when set to `true`, is automatically reset back to `false` after the Animator component has processed the trigger. Usually, a trigger is used to start a transition between Animator layer states and as a way to signal the beginning of an event. Because trigger parameters have this unique behavior, they require you to set the trigger value via the `NetworkAnimator.SetTrigger` method. > [!NOTE] -> If you set a trigger parameter using `Animator.SetTrigger` then this trigger sequence/transition won't be properly synchronized with the non-authority clone instances. +> If you set a trigger parameter using `Animator.SetTrigger` then this trigger sequence won't be properly synchronized with non-authority instances. You must use `NetworkAnimator.SetTrigger` to ensure proper synchronization. -An example might be that you use a trigger parameter called `IsJumping` to start a blended transition between the player's walking/running animation and the jumping animation. The below script adds **m_NetworkAnimator** which is assigned during `OnNetworkPreSpawn` (_unless you need to access it in `Start` it is recommended to handle getting components within `OnNetworkPreSpawn` as this will be invoked prior to `Start` when first spawning an instance_). +For example, you might have a trigger parameter called `IsJumping` to start a blended transition between the player's walking animation and the jumping animation. The following script adds `m_NetworkAnimator`, which is assigned during `OnNetworkPreSpawn` (unless you need to access it in `Start`, it's recommended to handle getting components within `OnNetworkPreSpawn` because it's invoked prior to `Start` when first spawning an instance). ```csharp private int m_GroundedParameterId; @@ -200,55 +187,41 @@ public void SetPlayerJumping(bool isJumping) } ``` -## Excluding parameters from being synchronized - -Now that you know about setting the authority mode and changing parameters, it is time to think about which parameters you want synchronized. Initially you might feel that all parameters need synchronization, however NetworkAnimator will synchronize any changes to any parameters marked for synchronization. - -This can become most problematic with `float` parameters that change often. As an example, you might have a `float` parameter called "Speed" which dictates the speed at which the current animation is played. This value could be directly set from a player's actual linear velocity which would most definitively be different each frame while a player is walking or running around. The end result is that for each spawned authority instance of any given network prefab that uses this kind of approach would generate at least one RPC per frame and that can exhaust transport resources and generate a bunch of network traffic. +## Exclude parameters from synchronization -> [!NOTE] -> Taking the above scenario into consideration, if you had 300 spawned instances where each authority instance generated 1 RPC per instance per frame you would generate 300 messages per frame or (if running at 60hz) 18,000 messages per second. While Netcode for GameObjects will batch messages by combining them into a single message, it would still generate (at a minimum) a reliable fragmented sequenced message that is fragmented across ~5 UTP messages per frame. This would lead to latency and performance issues. - -Fortunately, NetworkAnimator provides you with the ability to enable or disable any animator parameter from being synchronized within the **Animator Parameter Entries** field: +By default, all parameters within the Animator are marked for synchronization by the NetworkAnimator component. You can exclude parameters from synchronization to help reduce network traffic and improve performance using the **Animator Parameter Entries** field in the **Inspector** window. -![Usage-1](../../images/networkanimator/parametersynchronization.png) +![Animator Parameter Entries field](../../images/networkanimator/parametersynchronization.png) -When expanding this list of parameters, you will note that it also provides the hash value of the parameter's name (which can be copied), the parameter type, and a **Synchronize** field. By default, all parameters are marked for synchronization. +For example, if you have a `float` parameter called `Speed` that's updated every frame based on the player's linear velocity, then keeping it synchronized would generate at least one RPC per frame for each spawned authority instance of the network prefab. In a project with many spawned instances, this can lead to excessive network traffic and performance issues, even with Netcode for GameObjects' message batching. -### Non-synchronized parameters +### Unsynchronized parameters -How you want to handle updating parameters that are not synchronized is really dependent upon what kind of approach best fits your project's goals. Fortunately, there are two ways to handle this: +You can update unsynchronized parameters in two ways, depending on your project's needs: -* Synchronize the values using your own custom solution - * You can opt to send the values at a specific interval via RPC or use a NetworkVariable that will synchronize any delta each network tick. - * _This still contributes to the over-all bandwidth and processing time, but can provide you with the ability to lerp between the previous and current value over (n) period of time._ +* Synchronize the values using your own custom solution, such as sending the values at a specific interval via RPC or using a [NetworkVariable](../../basics/networkvariable.md) that synchronizes the delt on each network tick. + * This approach still contributes to bandwidth usage and processing time, but can provide you with the ability to lerp between the previous and current value over (n) period of time. * Update the parameters locally based on values that you already have access to. - * This is the "bandwidth free" approach, but does require some additional script to handle this. + * This approach doesn't use any bandwidth, but requires some additional scripts. #### Updating locally -Since this option is basically "bandwidth free" and is most likely the first area you might be interested in investigating, we will dive a bit deeper to provide one common parameter that can be handled locally: **Speed**. - -The scenario: +The following example shows how to locally update the `Speed` parameter based on changes to the player's position over time. The scenario: -* You are using a modified version of the ThirdPersonController or are using a similar approach where you have two parameters that determine how quickly a player might play a walking or running animation: - * Speed parameter: - * Updated each frame based on the player's input. - * MotionSpeed: - * Basically determines the magnitude of the player's input. - * _Most of the time this ends up being either 1.0 or 0.0 without an analog device, so the below example assumes you are not using an analog device to control the "amount of speed" to apply over time._ -* You are using a NetworkTransform to synchronize changes in position and rotation or you have written your own custom NetworkBehaviour that accomplishes the same thing. - * You have interpolation enabled or your custom solution uses some form of interpolation where a single state update is applied over (n) period of time (typically a network tick). +* You're using a modified version of the `ThirdPersonController`, or a similar approach with two parameters that determine how quickly a player might play a walking or running animation: + * `Speed` parameter: Updated each frame based on the player's input. + * `MotionSpeed`: Determines the magnitude of the player's input. + * Most of the time this ends up being either 1.0 or 0.0 with an analog device, so this example assumes you're not using an analog device to control the amount of speed to apply over time. +* You're using a [NetworkTransform](networktransform.md) to synchronize changes in position and rotation, or you have written your own custom [NetworkBehaviour](../core/networkbehaviour.md) that accomplishes the same thing. +* You have [interpolation](../../learn/clientside-interpolation.md) enabled, or your custom solution uses some form of interpolation where a single state update is applied over (n) period of time (typically a network tick). -Since each non-authority instance will be receiving delta transform state updates from the authority instance, we know that if the authority instance is moving then it is most likely animating and it is playing those animations based on the "speed" (linear velocity) of the authority player instance. - -This means we should be able to come up with a way, on the non-authority side, to "mock/calculate" some values based on changes to the transform's position on a frame by frame basis. The first thing we would want to do is mark the two parameters as not being synchronized within the NetworkAnimator's **Animator Parameter Entries** list (for this example): +Each non-authority instance receives delta transform state updates from the authority instance, so knows when a player is moving. If the player is moving, then animations should be being played based on the speed (linear velocity) of the authority player instance. So it's possible, on the non-authority instance, to calculate some values based on changes to the transform's position on a frame by frame basis. To begin with, mark the two parameters as unsynchronized within the NetworkAnimator's **Animator Parameter Entries** list (for this example): ![Usage-1](../../images/networkanimator/parametersnosynch.png) -This means the authority will no longer send updates when these two parameters are marked to not be synchronized. The next thing that needs to be done is to come up with a way to calculate these values on non-authority instances based on the non-authority instances movement over time. +This means that the authority will no longer send updates to synchronize these values. -Below is a simple example pseudo/partial script that shows how to accomplishes this: +Then you need to implement a script that calculates values on non-authority instances based on the non-authority instances movement over time. The following is an example psuedo-script to accomplish this: ```csharp [Range(0.0001f, 1.0f)] @@ -405,31 +378,30 @@ private void NonAuthorityUpdate() } ``` -**The walk through:** +The pseudo-script works as follows: * It keeps track of the last known position. * This is initialized on non-authority instances during post spawn. -* The delta between the last known position and current position is used to determine what our world units per second would be if we maintained that same delta for one second. - * _This could be improved, but provides a reasonably close approximation._ -* We then make sure the (world) units per second exceeds a specific threshold to avoid edge cases. +* The delta between the last known position and current position is used to determine what the world units per second would be if the delta was maintained for one second. +* The script then ensures that the (world) units per second exceeds a specific threshold to avoid edge cases. * If the units per second is larger than the threshold: * Lerping from the last known units per second value towards the new/current units per second value. - * _This handles "accelerating" towards or away from the current value._ + * _This handles accelerating towards or away from the current value._ * Clamp the calculated value to the maximum speed. - * Round the result and assign it to the "_speed" field (from ThirdPersonController). + * Round the result and assign it to the `_speed` field (from `ThirdPersonController`). * Check if the currently known speed is less than a predetermined minimum value. - * _If so, then set the speed and motion speed to zero._ -* Update the local Animator's **Speed** and **MotionSpeed** parameters. + * If so, then set the speed and motion speed to zero. +* Update the local Animator's `Speed` and `MotionSpeed` parameters. -The end result is that (NetworkAnimator relative) the only time this particular setup would send RPCs would be if the player jumps or falls since speed dictates the idle, walking, and running animations: +The end result is that (NetworkAnimator relative) the only time this particular set up would send RPCs would be if the player jumps or falls, since speed dictates the idle, walking, and running animations: ![Usage-1](../../images/networkanimator/animator-idle-walk-run.png) -### Update a parameter's synchronize during runtime +### Update synchronization status during runtime -You might have noticed a mention of toggling the **Speed** parameter's synchronize value during runtime. Perhaps you have a lot of already existing network prefab assets that might be too time intensive to adjust or you might only want certain instances adjusted. Either case, you can update the synchronization status of a parameter on the authority instance by invoking `NetworkAnimator.EnableParameterSynchronization`. +You can update the synchronization status of parameters during runtime by invoking `NetworkAnimator.EnableParameterSynchronization`. Perhaps you have a lot of existing network prefab assets that might be too time intensive to adjust or you only want to adjust certain instances. -Below is an example script that does this when the backslash key is pressed: +The following is an example script that does this when the backslash key is pressed: ```csharp if (Input.GetKeyDown(KeyCode.Backslash)) @@ -439,3 +411,8 @@ if (Input.GetKeyDown(KeyCode.Backslash)) m_NetworkAnimator.EnableParameterSynchronization(_animIDMotionSpeed, m_SynchronizeSpeedParameter.Value); } ``` + +## Additional resources + +- [NetworkAnimator API documentation](xref:Unity.Netcode.Components.NetworkAnimator) +- [Animator component documentation](https://docs.unity3d.com/Documentation/ScriptReference/Animator.html) \ No newline at end of file