diff --git a/Assets/FishNet/Runtime/Generated/Component/NetworkAnimator/NetworkAnimator.cs b/Assets/FishNet/Runtime/Generated/Component/NetworkAnimator/NetworkAnimator.cs index 4c312763..1b0f018a 100644 --- a/Assets/FishNet/Runtime/Generated/Component/NetworkAnimator/NetworkAnimator.cs +++ b/Assets/FishNet/Runtime/Generated/Component/NetworkAnimator/NetworkAnimator.cs @@ -597,10 +597,16 @@ private void TimeManager_OnPreTick() if (TimeManager.LocalTick < _startTick) return; - ReceivedServerData rd = _fromServerBuffer.Dequeue(); - ArraySegment segment = rd.GetArraySegment(); - ApplyParametersUpdated(ref segment); - rd.Dispose(); + //Apply the entire backlog instead of one entry per tick, so a burst + //of updates (e.g. from a caught-up frame) doesn't leave the client + //visibly behind for multiple ticks. + while (_fromServerBuffer.Count > 0) + { + ReceivedServerData rd = _fromServerBuffer.Dequeue(); + ArraySegment segment = rd.GetArraySegment(); + ApplyParametersUpdated(ref segment); + rd.Dispose(); + } } }