There are two typical ways to split your input handling:

  1. Controller-only: Do majority of it in the controller
  2. Pawn and controller: Have character or pawn specific inputs handled in the pawn

Let’s look at a quick overview of the pros and cons of each.

1. Controller-only

In this approach, you put all of your pawn or character movement related inputs into your Player Controller.

Typical reasons to use this approach:

  • You have multiple pawns which use the exact same input scheme, and you want to be able to switch between which kind of pawn is being used by the same controller

Disadvantages:

  • You may need more logic to check which mode you are in, or what kind of pawn you are controlling
  • Focuses a lot of logic in the controller. This may not be a problem necessarily.

2. Handle inputs in both the pawn and controller

In this approach, you handle common game inputs like opening the pause menu and navigating it in the Player Controller, but inputs for pawn specific actions like movement in the Pawn itself.

Typical reasons to use this approach:

  • You have different kinds of pawns with unique control schemes. Handling it in the pawn makes it easy as you don’t need to do additional logic for dealing with it.
  • You prefer the architectural split of handling inputs closer to what they affect

Disadvantages:

  • Input handling is split across more places. This may not be a problem necessarily.