UObject PostInit 问题

由于UE4的反射系统,应当慎重把握UObject对象的游戏性初始化时机。例如一个UObject对象,需要创建另一个UObject并持续引用时,则不应再PostInit中创建。这样会导致继承该UObject的蓝图,在保存时会运行一次PostInit,从而试图保存一个动态创建的UObject。
从另外一个角度来说,在UE4 editor中,由于代码热加载/编辑器多次运行地图,对象有可能在任何时候进行调用设置的游戏性初始化设置。而一般的设想中,这些游戏性初始化的顺序都是按照编写的逻辑线性运行,而这里由于为了实现编辑器的动态加载功能,有很多初始化将会被多次运行,但UOBject并不是完全重新初始化。所以需要仔细安排进入和退出代码。同时在网络环境,也会出现这种时序不对的问题,所以代码逻辑不能按照一般的线性逻辑去编写