切换地图时,PlayerController默认是不会被销毁的
而PlayerState默认会被销毁
如果PlayerState中有变量需要跨地图传递,可以有如下两种实现方法:
1.可以在PlayerController中增加相应的变量,然后在PlayerController派生类中的InitPlayerState(重载)方法中,获取该变量,再给PlayerState中对应的变量赋值
2.Playerstate切地图后会调用CopyProperties,可以在你的PlayerState的派生类中重写改方法,把上一个地图中的PlayerState需要的属性赋值到新地图的PlayerState中,如下是ShooterGame的代码,跨地图传递TeamNumber
断线重连后也会调用CopyProperties方法,可以通过变量bFromPreviousLevel判定PlayerState是否来自于前一个关卡,如果不是,就可以认为是断线重连属性,这样可以处理玩家掉线后属性丢失的问题