定制UE4引擎,如何避免C++項目重編引擎
????問題:下載UE4源碼后,擴展了一些功能,也修改了一些源碼。 重編源碼后,興沖沖的將編譯之后的引擎復制給其他同學使用。結果懵逼了,同學用這個引擎創(chuàng)建了一個C++工程。結果發(fā)現(xiàn)用重編全部C++代碼(包含引擎源碼)。
????這個問題困擾了我一段時間,今天在朋友的指導下,發(fā)現(xiàn)生成C++項目時,如果是源碼版本,會帶一個-engine參數(shù)。生成的工程會包含所有源碼帶的子項目(包括UE4、UnrealBuildTool、UnrealPak等)。這就是導致編譯項目代碼會重編整個引擎的原因。根據(jù)朋友的指導,需要重新生成工程時去掉-engine參數(shù)即可。
@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的版本
將腳本創(chuàng)建好,放到項目根目錄運行即可。
????但新生成項目怎么辦呢?
????抱著整個疑問,我查看了創(chuàng)建項目的過程(具體代碼不解釋,找到SButton,在點擊處理時間處下個斷點,一直跟就好了)。發(fā)現(xiàn)創(chuàng)建的時候就根據(jù)引擎版本是官方發(fā)布版還是源碼版會動態(tài)的去掉-engine參數(shù)。具體判斷邏輯是什么呢? 看看下面幾張圖的區(qū)別就知道了。




????所以,當你編譯完引擎源碼后,刪除SourceDistribution.txt新建InstalledBuild.txt就可以了。
最后看看下面兩張圖的區(qū)別:

