I have a player prefab I call it my “Commander”. It has an Animator, Network Identity (Local Player Authority checked), Network Animator, and Network Transform. This is set in the Network Manager as the player prefab to auto-spawn. The Commander has a script on it that checks in the Start method to see if it “isLocalPlayer”. If it is, it enables the Input script on the Commander. The Input script perfectly controls the Commander’s movement (using the Rigidbody [the Rigidbody’s properties are perfectly synchronized via the Network Transform]) and animations (using the Animator [animations are synchronized just fine via the Network Animator]). In the Input script I have a Command that requests the server to NetworkServer.SpawnWithClientAuthority() a “Soldier”.
The Soldier is a registered spawnable. It too has an Animator, Network Identity (Local Player Authority checked), Network Animator, and Network Transform. In the Commander’s Input script is a method to disable his Input, and enable the Input of his Soldier. When I swap control from the Commander, to the Soldier, the Input script perfectly controls the Soldier’s movement (using the Rigidbody [the Rigidbody’s properties are perfectly synchronized via the Network Transform]) and the animations (using the Animator). HOWEVER, this is where the problem lies. My Soldier’s Animator state is not being synchronized. On the local machine the animations are working properly. However, on all other clients (and the host) the states are not being updated.