一旦PlayerController生成出来,world关于玩家的网络的初始化工作全部完成。
接下来,进行PostLogin(),
从而在玩家加入游戏时,能做一些设置工作。
默认情况下,GameMode会为新生的PlayerController建立一个pawn。Pawn能够被PlayerController占有并控制;PlayerController是Controller的子类,Controller的另一个子类是AIController(用于控制非玩家角色)
UE也支持旁观者,如果PlayerState可以设置一个玩家为旁观者。或者在游戏开始时就把所有玩家当作旁观者,这时GameMode不会生成Pawn对象,而是由PlayerController自己生成一个SpectatorPawn对象,从而能让玩家能在不与游戏世界产生任何交互的情况下飞来飞去。否则,就会在PostLogin中调用RestartPlayer(),
应用场景,比如游戏中玩家被消灭,此时pawn就消失了,但是playerController仍存在,可以重生,需要找一个新的pawn,就是投胎了。此时可以调用RestartPlayer()
GameMode会从地图所有PlayerStart挑选一个出生点,有时没有设置出生点,则用PlayerController的出生点。出生点也是一个Actor对象
然后找出要用到的Pawn对象使用的类,并生成实例,与Controller关联,并被Controller控制