That’s odd… “they are not meant to be swapped out” seems to be directly contradicted by the function AGameModeBase::SwapPlayerControllers. I’m unclear about what you mean when you say “spawn a menu manager actor, and enable input on that actor” That’s exactly what I want to do; I want to pass action mapped inputs directly to different actors. But I don’t want to put a bunch of decisions directly into the APlayerController; that is bad practice. I’m also not too keen on setting up indirection with functors or delegates that let me re-assign where the input goes to (essentially giving the player controller a virtual table).
How exactly are you proposing I “enable input on that actor”?
“coupling an object with several other pieces of code is not a bad thing to do in OOP” I am relatively new to the Unreal engine, but I’ve been coding in C++ for a looong time, and I disagree with you on that statement.