@@ -57,8 +57,8 @@ public void NetworkUpdate(NetworkUpdateStage updateStage)
5757 }
5858 m_ProcessParameterUpdates . Clear ( ) ;
5959
60- // Only owners check for Animator changes
61- if ( m_NetworkAnimator . IsOwner && ! m_NetworkAnimator . IsServerAuthoritative || m_NetworkAnimator . IsServerAuthoritative && m_NetworkAnimator . NetworkManager . IsServer )
60+ // Only server checks for Animator changes
61+ if ( m_NetworkAnimator . NetworkManager . IsServer )
6262 {
6363 m_NetworkAnimator . CheckForAnimatorChanges ( ) ;
6464 }
@@ -208,42 +208,6 @@ public Animator Animator
208208 }
209209 }
210210
211- [ Tooltip ( "When enabled, the NetworkAnimator will operate in server authoritative mode." ) ]
212- [ SerializeField ]
213- private bool m_IsServerAuthoritative ;
214-
215- /// <summary>
216- /// Server-Side Only:
217- /// Can be used to switch between server and owner authoritative modes during runtime.
218- /// Note: Only when the associated NetworkObject is spawned.
219- /// </summary>
220- public bool IsServerAuthoritative
221- {
222- get
223- {
224- return m_IsServerAuthoritative ;
225- }
226- set
227- {
228- if ( ! IsSpawned )
229- {
230- m_IsServerAuthoritative = value ;
231- }
232- else if ( IsSpawned && IsServer )
233- {
234- m_IsServerAuthoritative = value ;
235- m_ServerAuthoritativeMode . Value = value ;
236- }
237- }
238- }
239-
240- private NetworkVariable < bool > m_ServerAuthoritativeMode = new NetworkVariable < bool > ( ) ;
241-
242- private void OnServerAuthoritativeModeChanged ( bool previous , bool next )
243- {
244- m_IsServerAuthoritative = next ;
245- }
246-
247211 // Animators only support up to 32 params
248212 private const int k_MaxAnimationParams = 32 ;
249213
@@ -327,7 +291,6 @@ public override void OnNetworkSpawn()
327291 if ( IsServer )
328292 {
329293 NetworkManager . OnClientConnectedCallback += OnClientConnectedCallback ;
330- m_ServerAuthoritativeMode . Value = m_IsServerAuthoritative ;
331294 }
332295
333296 // Store off our current layer weights
@@ -349,11 +312,6 @@ public override void OnNetworkSpawn()
349312 }
350313 }
351314
352- if ( ! IsServer )
353- {
354- m_ServerAuthoritativeMode . OnValueChanged = OnServerAuthoritativeModeChanged ;
355- }
356-
357315 var parameters = m_Animator . parameters ;
358316 m_CachedAnimatorParameters = new NativeArray < AnimatorParamCache > ( parameters . Length , Allocator . Persistent ) ;
359317 m_ParametersToUpdate = new List < int > ( parameters . Length ) ;
@@ -477,7 +435,7 @@ private void OnClientConnectedCallback(ulong playerId)
477435
478436 internal void CheckForAnimatorChanges ( )
479437 {
480- if ( ! IsOwner && ! IsServerAuthoritative || m_IsServerAuthoritative && ! IsServer )
438+ if ( ! IsServer )
481439 {
482440 return ;
483441 }
@@ -791,27 +749,11 @@ private unsafe void UpdateAnimationState(AnimationMessage animationState)
791749 [ ServerRpc ]
792750 private unsafe void SendParametersUpdateServerRpc ( ParametersUpdateMessage parametersUpdate , ServerRpcParams serverRpcParams = default )
793751 {
794- if ( IsServerAuthoritative )
795- {
796- m_NetworkAnimatorStateChangeHandler . SendParameterUpdate ( parametersUpdate ) ;
797- }
798- else
752+ if ( serverRpcParams . Receive . SenderClientId != OwnerClientId )
799753 {
800- if ( serverRpcParams . Receive . SenderClientId != OwnerClientId )
801- {
802- return ;
803- }
804- UpdateParameters ( parametersUpdate ) ;
805- if ( NetworkManager . ConnectedClientsIds . Count - 2 > 0 )
806- {
807- m_ClientSendList . Clear ( ) ;
808- m_ClientSendList . AddRange ( NetworkManager . ConnectedClientsIds ) ;
809- m_ClientSendList . Remove ( serverRpcParams . Receive . SenderClientId ) ;
810- m_ClientSendList . Remove ( NetworkManager . ServerClientId ) ;
811- m_ClientRpcParams . Send . TargetClientIds = m_ClientSendList ;
812- m_NetworkAnimatorStateChangeHandler . SendParameterUpdate ( parametersUpdate , m_ClientRpcParams ) ;
813- }
754+ return ;
814755 }
756+ m_NetworkAnimatorStateChangeHandler . SendParameterUpdate ( parametersUpdate ) ;
815757 }
816758
817759 /// <summary>
@@ -820,10 +762,7 @@ private unsafe void SendParametersUpdateServerRpc(ParametersUpdateMessage parame
820762 [ ClientRpc ]
821763 internal unsafe void SendParametersUpdateClientRpc ( ParametersUpdateMessage parametersUpdate , ClientRpcParams clientRpcParams = default )
822764 {
823- if ( ! IsServerAuthoritative && ! IsOwner || IsServerAuthoritative )
824- {
825- m_NetworkAnimatorStateChangeHandler . ProcessParameterUpdate ( parametersUpdate ) ;
826- }
765+ m_NetworkAnimatorStateChangeHandler . ProcessParameterUpdate ( parametersUpdate ) ;
827766 }
828767
829768 /// <summary>
@@ -833,27 +772,12 @@ internal unsafe void SendParametersUpdateClientRpc(ParametersUpdateMessage param
833772 [ ServerRpc ]
834773 private unsafe void SendAnimStateServerRpc ( AnimationMessage animSnapshot , ServerRpcParams serverRpcParams = default )
835774 {
836- if ( IsServerAuthoritative )
775+ if ( serverRpcParams . Receive . SenderClientId != OwnerClientId )
837776 {
838- m_NetworkAnimatorStateChangeHandler . SendAnimationUpdate ( animSnapshot ) ;
839- }
840- else
841- {
842- if ( serverRpcParams . Receive . SenderClientId != OwnerClientId )
843- {
844- return ;
845- }
846- UpdateAnimationState ( animSnapshot ) ;
847- if ( NetworkManager . ConnectedClientsIds . Count - 2 > 0 )
848- {
849- m_ClientSendList . Clear ( ) ;
850- m_ClientSendList . AddRange ( NetworkManager . ConnectedClientsIds ) ;
851- m_ClientSendList . Remove ( serverRpcParams . Receive . SenderClientId ) ;
852- m_ClientSendList . Remove ( NetworkManager . ServerClientId ) ;
853- m_ClientRpcParams . Send . TargetClientIds = m_ClientSendList ;
854- m_NetworkAnimatorStateChangeHandler . SendAnimationUpdate ( animSnapshot , m_ClientRpcParams ) ;
855- }
777+ return ;
856778 }
779+
780+ m_NetworkAnimatorStateChangeHandler . SendAnimationUpdate ( animSnapshot ) ;
857781 }
858782
859783 /// <summary>
@@ -862,10 +786,7 @@ private unsafe void SendAnimStateServerRpc(AnimationMessage animSnapshot, Server
862786 [ ClientRpc ]
863787 private unsafe void SendAnimStateClientRpc ( AnimationMessage animSnapshot , ClientRpcParams clientRpcParams = default )
864788 {
865- if ( ! IsServerAuthoritative && ! IsOwner || IsServerAuthoritative )
866- {
867- UpdateAnimationState ( animSnapshot ) ;
868- }
789+ UpdateAnimationState ( animSnapshot ) ;
869790 }
870791
871792 /// <summary>
@@ -875,30 +796,11 @@ private unsafe void SendAnimStateClientRpc(AnimationMessage animSnapshot, Client
875796 [ ServerRpc ]
876797 private void SendAnimTriggerServerRpc ( AnimationTriggerMessage animationTriggerMessage , ServerRpcParams serverRpcParams = default )
877798 {
878- if ( IsServerAuthoritative )
799+ if ( serverRpcParams . Receive . SenderClientId != OwnerClientId )
879800 {
880- m_NetworkAnimatorStateChangeHandler . SendTriggerUpdate ( animationTriggerMessage ) ;
881- }
882- else
883- {
884- if ( serverRpcParams . Receive . SenderClientId != OwnerClientId )
885- {
886- return ;
887- }
888- // trigger the animation locally on the server...
889- m_Animator . SetBool ( animationTriggerMessage . Hash , animationTriggerMessage . IsTriggerSet ) ;
890-
891- if ( NetworkManager . ConnectedClientsIds . Count - 2 > 0 )
892- {
893- m_ClientSendList . Clear ( ) ;
894- m_ClientSendList . AddRange ( NetworkManager . ConnectedClientsIds ) ;
895- m_ClientSendList . Remove ( serverRpcParams . Receive . SenderClientId ) ;
896- m_ClientSendList . Remove ( NetworkManager . ServerClientId ) ;
897- m_ClientRpcParams . Send . TargetClientIds = m_ClientSendList ;
898- m_NetworkAnimatorStateChangeHandler . SendTriggerUpdate ( animationTriggerMessage , m_ClientRpcParams ) ;
899- }
801+ return ;
900802 }
901-
803+ m_NetworkAnimatorStateChangeHandler . SendTriggerUpdate ( animationTriggerMessage ) ;
902804 }
903805
904806 /// <summary>
@@ -910,10 +812,7 @@ private void SendAnimTriggerServerRpc(AnimationTriggerMessage animationTriggerMe
910812 [ ClientRpc ]
911813 internal void SendAnimTriggerClientRpc ( AnimationTriggerMessage animationTriggerMessage , ClientRpcParams clientRpcParams = default )
912814 {
913- if ( ! IsServerAuthoritative && ! IsOwner || IsServerAuthoritative )
914- {
915- m_Animator . SetBool ( animationTriggerMessage . Hash , animationTriggerMessage . IsTriggerSet ) ;
916- }
815+ m_Animator . SetBool ( animationTriggerMessage . Hash , animationTriggerMessage . IsTriggerSet ) ;
917816 }
918817
919818 /// <summary>
@@ -930,7 +829,7 @@ public void SetTrigger(string triggerName)
930829 /// <param name="reset">If true, resets the trigger</param>
931830 public void SetTrigger ( int hash , bool setTrigger = true )
932831 {
933- if ( IsOwner && ! IsServerAuthoritative || IsServer && IsServerAuthoritative )
832+ if ( IsOwner || IsServer )
934833 {
935834 var animTriggerMessage = new AnimationTriggerMessage ( ) { Hash = hash , IsTriggerSet = setTrigger } ;
936835 if ( IsServer )
@@ -941,8 +840,7 @@ public void SetTrigger(int hash, bool setTrigger = true)
941840 {
942841 SendAnimTriggerServerRpc ( animTriggerMessage ) ;
943842 }
944- // trigger the animation locally on the server...
945- m_Animator . SetBool ( hash , setTrigger ) ;
843+
946844 }
947845 }
948846
0 commit comments