所有玩家控制、输入的功能都应该写在PlayerController中。
PlayerController原本就是充当Pawn与玩家之间的接口,接受输入来控制Pawn。而且Pawn在关卡中可能会因为条件触发被销毁(如角色血量降低到0,死亡,那么就会销毁Pawn)。而在游戏进行过程中PlayerController却不会被销毁,一直都是同一个Controller。所以监听输入、分数记录等需要在游戏过程中一直存在的功能就应该放在PlayerController中,而不是Pawn中。所以最后应该是Controller来指示Pawn怎么做,Pawn执行,而不是将所有逻辑放在Pawn中。
而且,在多人游戏,或者游戏角色能够自由切换模型(例如躲猫猫模式)的游戏模式中,如果直接将输入监听功能集成在Pawn中,那么写起来会非常不方便。