protected virtual void HandleInput()
    {
        if (!(ControlledPawn && playerInput))
        {
            return;
        }

        PassMoveInput(playerInput.GetMoveVector());
        PassLookInput(playerInput.GetLookVector());
        PassPrimaryActionInput(playerInput.GetPrimaryAction());
        PassSecondaryActionInput(playerInput.GetSecondaryAction());
        PassScrollInput(playerInput.GetScrollInput());
        PassWeaponHotkey(playerInput.GetWeaponHotkey());
        PassInteractInput(playerInput.GetInteractInput());
        PassJumpInput(playerInput.GetJumpInput());
        PassSprintInput(playerInput.GetSprintInput());
        PassCrouchInput(playerInput.GetCrouchInput());
        PassStart(playerInput.GetStartInput());
        PassSelect(playerInput.GetBackInput());
        PassInventory(playerInput.GetInventoryInput());
    }