Issue with animation

I have two players, Host and Client. Whenever I activate an animation on Client that animation plays for both Client and Host. However if I activated an animation on Host, Only the Host can see the animation

(^ my animator and Network Mecanim Animator)

(^ the scripts responsible for running the animation)


Im really not sure why this outcome happens as both players share the same code

Best Answer

  • emotitron
    emotitron ✭✭✭
    Answer ✓

    First thing, be sure to get current with your Fusion version - that looks to be a very old version of beta you are running there.


    One thing to note about the NetworkMecanAnimator is that it is ONLY a StateAuthority -> Proxy sync. It does not push changes from StateAuthority -> InputAuthority, because that would interfere with client prediction. So typically you will want to apply changes only on Forward ticks and if input is available.


    A typical check would look like:

    void FixedUpdateNetwork(){

    if (GetInput(out var input && Runner.IsForward)){

    // Apply inputs to Animator

    }

    }

Answers

  • emotitron
    emotitron ✭✭✭
    Answer ✓

    First thing, be sure to get current with your Fusion version - that looks to be a very old version of beta you are running there.


    One thing to note about the NetworkMecanAnimator is that it is ONLY a StateAuthority -> Proxy sync. It does not push changes from StateAuthority -> InputAuthority, because that would interfere with client prediction. So typically you will want to apply changes only on Forward ticks and if input is available.


    A typical check would look like:

    void FixedUpdateNetwork(){

    if (GetInput(out var input && Runner.IsForward)){

    // Apply inputs to Animator

    }

    }

  • Same problem happening to us.

    This is where we're sending information to both Movement and Animator: