了解UAT
UAT是UnrealAutomationTool,最重要的一个作用就是BuildCookRun,也就是编译、烘焙、运行测试一条龙。下面是一则示例:
{你的工程}/Engine/Build/BatchFiles/RunUAT.bat -ScriptsForProject={你的工程}.uproject BuildCookRun -nop4 -project={你的工程}.uproject -cook -stage -archive -archivedirectory={你的工程所在的目录} -package -ue4exe={你的工程}/Engine/Binaries/Win64/UE4Editor-Cmd.exe -compressed -pak -prereqs -nodebuginfo -manifests -targetplatform=Win64 -clientconfig=Development -utf8output -NoCompile
在UAT的脚本(EngineSource\Engine\Build\BatchFiles\RunUAT.bat)中 ↑,最重要的是 47 - 51 行,这说明,UAT对应的工具是 AutomationToolLauncher.exe。
调试UAT
一、首先编译好Programs重的AutomationTool.cs和 AutomationToolLauncher.cs 两个工具;
二、在Rider的右上角调试器中,选择AutomationToolLauncher,并在More Actions中配置参数如下,
Program arguments:
-ScriptsForProject={你的工程}.uproject BuildCookRun -nop4 -project={你的工程}.uproject -cook -stage -archive -archivedirectory={你的工程目录} -package -ue4exe={你的工程}\EngineSource/Engine/Binaries/Win64/UE4Editor-Cmd.exe -compressed -pak -prereqs -nodebuginfo -manifests -targetplatform=Win64 -build -target={你的工程名} -clientconfig=Development -utf8output -compile
备忘一下:原本填写的是 $(LocalDebuggerCommandArguments),其实就是指这些configuration参数。当调试结束后,记得把这个值更改回来。
三、加断点,并点击Debug,开始调试
举个例子,加到这里:
四、顺利完成
这些是关键日志:
Copying NonUFSFiles to staging directory: G:\St\MyProject\Saved\StagedBuilds\WindowsNoEditor
********** STAGE COMMAND COMPLETED **********
********** PACKAGE COMMAND STARTED **********
********** PACKAGE COMMAND COMPLETED **********
********** ARCHIVE COMMAND STARTED **********
Archiving to G:\St\MyProject
********** ARCHIVE COMMAND COMPLETED **********
BUILD SUCCESSFUL
AutomationTool exiting with ExitCode=0 (Success)