private void OnClientTick(uint deltaTick)
        {
            if (!IsHost)
            {
                if (!IsLocalEntity)
                {
                    if (!_movementBuffer.IsEmpty)
                    {
                        var history = _movementBuffer.PopBack();

                        //first time
                        if (_currentMovement == null)
                        {
                            _currentMovement = history;
                        }

                        if (history.Tick > _currentMovement.Tick)
                        {
                            _currentMovement = history;
                        }
                    }
                }
                else
                {
                    _localHistory.PushFront(new MovementHistory {
                        Tick = NetworkTick, Position = transform.position
                    });
                }
            }
        }
        protected override void OnDeserialize(NetDataReader reader)
        {
            if (IsHost)
            {
                return;
            }

            NetworkTick = reader.GetUInt();
            var pos = reader.GetVector3();

            var hist = new MovementHistory {
                PeerId = PeerId, Tick = NetworkTick, Position = pos
            };

            _movementBuffer.PushFront(hist);
        }