本文共 1203 字,大约阅读时间需要 4 分钟。
我想程序发布后,对于有些用户配置通过配置文件修改后,重新启动程序生效。这是一个最正常不过的需求了。
比如在想在DefaultGame.ini或者在其他配置文件中添加如下配置段:
图一所示是一个需要跟其他程序交互的目录设置,但是这个目录没有必要让终端用户知晓,
但是程序部署的时候根据不同情况进行部署势必需要修改这个目录设置。
但是理想很丰满,现实真的很残酷。你会发现UE4达成这个目标真的要掉你一层皮,hey,伙计我的目标不是要挣一个亿。当然不是UE4不能完成这个功能,它的配置系统真是非常强大,只是官方没有文档给出这样的说明,当然如果有人找到对应的文档说明,麻烦留言给我,更正我的问题。下面来看怎样达成这个小目标。
直接看答案:
请在打包前,修改工程中Config/DefaultGame.ini文件,添加如下配置段:
BlacklistConfigFiles这个配置的作用是防止打包时把DefaultGame.ini文件打包到Pak文件中,导致无法修改配置,这样DefaultGame.ini会出现在打包后程序的Config目录下。
好了,只想知道答案的看官可以就此留步了。对于想知道“授人以鱼不如授人以渔”之“渔”的看官可以继续往下看。
那怎样知道要加这样一个配置段的,就是通过调试源代码查找出来的。有源代码在手,犹如手持屠龙宝刀,能不能发挥它的威力,还看自己的功力了。
第一步,请下载源码版引擎并编译,打开UE4.sln,如下图,
找到AutomationScripts.Automation工程,Automation目录下的工程正是打包执行的程序,后续有其他打包问题,大部分可以通过调试这些工程来查找解决。
第二步,开始在UE4菜单中启动打包程序,然后用VS附加UE4打包进程。通过单步调试程序,在文件EngineSourceProgramsAutomationToolScriptsCopyBuildToStagingDirectory.Automation.cs中定位到如下关键代码段:
这段代码就是决定哪些文件应该打包到pak中去,在划红线处表示在黑名单列表中的配置文件不会打包的pak中去。
接着查找,怎样去编写这个黑名单列表,在文件EngineSourceProgramsAutomationToolAutomationUtilsDeploymentContext.cs中定位到如下代码段:
而ReadConfigFileList函数如下:
此函数已经非常明确的告知大家,在配置文件中,添加“Staging”区,键名为“BlacklistConfigFiles”,键值就是要跳过打包的配置文件路径了。
至此,所有疑问已经解除,可以安心睡觉了。当然,你如果亲自完成整个过程就知道为什么会掉下一层皮了,没有文档,你就得这样费力的挖代码,挖多了,就。。。。
转载地址:https://blog.csdn.net/weixin_40004659/article/details/111117340 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!