启示:一人之下,外人之上
GameInstance里的接口有4类:
1、引擎初始化加载,Init和ShutDown等
2、Player的创建,如CreateLocalPlayer,GetLocalPlayers之类的
3、GameMode的重载修改。
4、OnlineSession的管理
二、GameInstance是GameEngine里创建的
一场游戏,GameInstance只有一个
多人在线游戏中,每一个玩家(Player)都是一个进程,所有玩家都在一个Game下运作,玩家间的通信就是进程间的通信
GameInstance也会被上层的Engine实例化多个出来,比如说PIE实例化一个出来,Play也会实例化....等等
GameInstance应该放哪些逻辑?
1、GameInstance代理World的切换
2、GameInstance实现了许多接口可以让你动态的添加删除Player
3、UI,控制UI的各种逻辑
4、全局的配置(全局变量,在Level之外,持续存在的对象)
5、游戏的额外的第三方逻辑:比如自己写的网络通信、自定义的配置文件或者自己的一些程序算法。
6、GameInstace最好只存临时的数据
我们层层上来,已经针对Player的Controller的PlayerState。