定制UE4引擎,如何避免C++项目重编引擎
问题:下载UE4源码后,扩展了一些功能,也修改了一些源码。 重编源码后,兴冲冲的将编译之后的引擎复制给其他同学使用。结果懵逼了,同学用这个引擎创建了一个C++工程。结果发现用重编全部C++代码(包含引擎源码)。
这个问题困扰了我一段时间,今天在朋友的指导下,发现生成C++项目时,如果是源码版本,会带一个-engine参数。生成的工程会包含所有源码带的子项目(包括UE4、UnrealBuildTool、UnrealPak等)。这就是导致编译项目代码会重编整个引擎的原因。根据朋友的指导,需要重新生成工程时去掉-engine参数即可。
@echo off
set UnrealEditorPath=XXX1\Engine\Binaries\DotNET\UnrealBuildTool.exe
set ProjectName=XXX2
%UnrealEditorPath% -ProjectFiles -project=%~dp0%ProjectName%.uproject -game -progress -2017
pause
XXX1为引擎根目录
XXX2为项目名称(uproject文件名)
-2017是VS的版本
将脚本创建好,放到项目根目录运行即可。
但新生成项目怎么办呢?
抱着整个疑问,我查看了创建项目的过程(具体代码不解释,找到SButton,在点击处理时间处下个断点,一直跟就好了)。发现创建的时候就根据引擎版本是官方发布版还是源码版会动态的去掉-engine参数。具体判断逻辑是什么呢? 看看下面几张图的区别就知道了。




所以,当你编译完引擎源码后,删除SourceDistribution.txt新建InstalledBuild.txt就可以了。
最后看看下面两张图的区别:

