当前位置: 首页 > news >正文

UE5 UAT

通过UAT 打包的流程,先整理这么点

入口

// Engine\Source\Programs\AutomationTool\Program.cs
/// <summary>
/// Main entry point
/// </summary>
public partial class Program
{public static async Task<int> Main(string[] Arguments){Logger.LogInformation("Starting AutomationTool...");MainProc();}static async Task<ExitCode> MainProc(){   //获得AutomationTool命名空间的Automation类型Type AutomationTools_Automation = AutomationUtilsAssembly.GetType("AutomationTool.Automation");//获得Automation的ProcessAsync()接口MethodInfo Automation_Process = AutomationTools_Automation.GetMethod("ProcessAsync");//调用ProcessAsync()方法,用来处理AutomationToolCommandLine中的CommandsToExecutereturn await (Task<ExitCode>) Automation_Process.Invoke(null,new object[] {AutomationToolCommandLine, StartupListener, ScriptModuleAssemblyPaths});}
}
// Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cspublic static class Automation
{ public static async Task<ExitCode> ProcessAsync(ParsedCommandLine         AutomationToolCommandLine, .......){// Find and execute commands.ExitCode Result = await ExecuteAsync(AutomationToolCommandLine.CommandsToExecute, ScriptManager.Commands);}public static async Task<ExitCode> ExecuteAsync(List<CommandInfo> CommandsToExecute, Dictionary<string, Type> Commands){BuildCommand Command = (BuildCommand)Activator.CreateInstance(CommandType);// 执行commandExitCode Result = await Command.ExecuteAsync();}
}

// Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cspublic class BuildCookRun : BuildCommand, IProjectParamsHelpers
{public override void ExecuteBuild(){var StartTime = DateTime.UtcNow;// these need to be done firstvar bForeign = ParseParam("foreign");var bForeignCode = ParseParam("foreigncode");if (bForeign){MakeForeignSample();}else if (bForeignCode){MakeForeignCodeSample();}var Params = SetupParams();// 执行 Build cook RunDoBuildCookRun(Params);Logger.LogInformation("BuildCookRun time: {0:0.00} s", (DateTime.UtcNow - StartTime).TotalMilliseconds / 1000);}protected void DoBuildCookRun(ProjectParams Params){int WorkingCL = -1;if (P4Enabled && GlobalCommandLine.Submit && AllowSubmit){WorkingCL = P4.CreateChange(P4Env.Client, String.Format("{0} build from     changelist {1}", Params.ShortProjectName, P4Env.Changelist));}//编译代码, 会通过ToolChain进行编译Project.Build(this, Params, WorkingCL, ProjectBuildTargets.All);//cook 资源Project.Cook(Params);Project.CopyBuildToStagingDirectory(Params);// 打包 android: 拷贝.so,和资源文件,调用runGradle.bat,生成apkProject.Package(Params, WorkingCL);//拷贝apk和install文件到打包路径Project.Archive(Params);//默认不处理Project.Deploy(Params);PrintRunTime();//默认不处理Project.Run(Params);Project.GetFile(Params);// Check everything in!if (WorkingCL != -1){int SubmittedCL;P4.Submit(WorkingCL, out SubmittedCL, true, true);}}
}

http://www.xdnf.cn/news/1455697.html

相关文章:

  • iSCSI IP-SAN 部署实战
  • SMARTGRAPHQA —— 基于多模态大模型的PDF 转 Markdown方法和基于大模型格式校正方法
  • 滑动窗口题目:水果成篮
  • C 盘清理技巧分享:释放磁盘空间,提升系统性能
  • ArcGIS学习-15 实战-建设用地适宜性评价
  • 适应新环境:Trae编辑器下的IDEA快捷键定制
  • 解密大语言模型推理:Prompt Processing 的内存管理与计算优化
  • C++语言编程规范-常量
  • 既“强悍”又“灵活”,部署在用户身边,将直播延迟压缩至毫秒级
  • Kafka 学习教程:从基础概念到实践操作
  • 分析流程自动优化!Fabarta个人专属智能体「数据分析」新功能介绍
  • 打工人日报#20250904
  • docker中的mysql变更宿主机映射端口
  • 以StarRocks为例讲解MPP架构和列式存储
  • vscode launch.json 中使用 cmake tools 扩展的命令获取可执行文件目标文件名
  • 设计师的私有化远程协作解决方案,是OpenUI与cpolar组合的标配功能
  • 目标检测系列-Yolov5下载及运行
  • 深度学习下的单阶段通用目标检测算法研究综述2.0
  • Java全栈工程师的实战面试:从Vue到Spring Boot的技术旅程
  • PSU电源原理
  • 双指针扫描使用简述
  • 【AI论文】面向大语言模型(LLMs)的具身强化学习全景图:一项调研综述
  • 新闻稿的发布平台有哪些?选对渠道让发稿效果事半功倍!
  • 移远EC200A OpenCPU笔记
  • 一文吃透同态滤波算法!从原理到 MATLAB 实战,小白也能懂
  • 解析PE文件的导入表和导出表
  • 准确率可达99%!注意力机制+UNet,A会轻松收割!
  • 20250904的学习笔记
  • HTML + CSS 创建图片倒影的 5 种方法
  • 大数据毕业设计选题推荐-基于大数据的儿童出生体重和妊娠期数据可视化分析系统-Hadoop-Spark-数据可视化-BigData