好的,非常感谢!
确实这些Plugin只是名字出现在了Target中,而代码并没有链接到最终的exe中。
通过对比,我发现我之前的修改有问题,导致了两次编译出来的exe大小会相差十几M。在UEBuildTarget.cs中,AddPlugin的时候,通过Plugins.IsPluginCompiledForTarget来进行判断,会误杀掉某些Module(比如:EOSSDK-Win64-Shipping.dll, 由于我测试的Test版本,所以会认为这种Module不符合该Target),这种类型的Module被杀掉后,短时间内在游戏中测试没发现任何问题,我误认为了是由于Editor类型的Plugin导致的。
在运行时,这些Editor类型的Plugin虽然会进入FPluginManager中的PluginsArray,并调用了Context.Load(*Plugin.Name),但并不会实质的Load。
优雅的改法确实需要你上边这种修改方法,通过这种修改,前后对比发现,编译出来的exe只减少了27k(修改前exe Size:256370KB,修改后exe Size:256343KB)的大小,这样来看,确实没太大修改的必要。
再次的表示感谢,谢谢!