众所周知,UE4 可以在设置中进行窗口多开,即同时开启不超过10个客户端和一个DS,那么多开的窗口是不是多个线程,如何编写这种多窗口下的逻辑代码呢?
多开的窗口不是多线程,而是多个继承GameInstance的实例,也就是每个客户端或者每个DS 也是对应一个。
而每个GameInstance 的World 是不一样的,可以通过每个WorldContext中的PIEInstance是不一样的 可以用编辑器下的全局变量 GPlayInEditorID 来进行判断,为-1的时候是默认的PIE,>-1的时候对应 每个GameInstance 和World实例。
每个实例启动的时候,必然会执行如下流程 :
因此可以采用 GPlayInEditorID 来进行不同编辑器窗口下的逻辑管理,像编辑器工具预览等。