Disabling Block Input and setting the Auto Receive Input player in the GameController settings.
The only way I can get the actor to read input is either having the GameController spawn and possess it, or having it start possessed. What am I missing here?
Any blueprint is capable of handling player input, in addition, non-player controller blueprints will get priority and, by default, consume the said input.
Putting this code in an actor and setting Auto Receive Input → Player 0, prints the actor’s name and consumes that input - meaning that the Player Controller can no longer handle it.
This is exactly what I was expecting to happen, and what I (think I’ve) experienced in the past. However, even with the setup and nodes you described, I’m still not reading any input on the pawn unless it’s possessed.
EDIT: On a side note, it seems that if I set Auto Receive Input to a player and save the level, when I reopen the project that setting reverts back to Disabled. Changing it manually against doesn’t make the input work, but just thought that was strange.
I think that the Player Controller and the Pawn class have a special relation and Pawns might be unable to process input while not possessed. If I just drop any other actor into your level, it works fine.
Something I did not know.
So your question really is “Can an unpossessed Pawn process input?”
If you want to receive input on your non-controlled object in the map who’s BP inherits from “Pawn”, you’ll need to change its parent class from “Pawn” to “Actor”. Only then the input of your non-controlled Actor put in the map will be considered.