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

AirSim/Cosys-AirSim 游戏开发(三)打包可执行文件

之前两篇博客介绍了如何在 AirSim 中使用自定义的场景并在 UE Editor 中运行,但这种方式其实生成的是 Debug 版,包含了很多调试使用的符号连接,在后面追求性能的时候会成为瓶颈,这篇博客介绍如何将第二篇博客中使用的场景编译成 Shipping。

  • AirSim/Cosys-AirSim 游戏开发(二)使用自定义场景

下表介绍了 UE 三个常见版本之间的区别:

特性DevelopmentReleaseShipping
含调试信息(符号)✅(部分)
控制台命令❌(受限)
日志输出全部大部分很少
运行效率普通最高
安全性(防逆向)
崩溃报告
适合发布内部测试用

总体来说 AirSim 打包发版流程就是 UE 的发版流程,因为 AirSim 是作为 UE 插件添加进来的,因此在打包过程中遇到的所有问题都是 UE 的打包问题。


1. 添加地图和AirSim资源

在上方工具栏中点击 Edit,弹出的窗口中点击 Project Settings... 按钮进入项目配置界面:

在这里插入图片描述

在弹出的界面中依次执行以下操作:

  1. 在左侧标签栏中找到 Project 标签,点击 Packing 进入打包界面;
  2. 下拉找到 List of maps to include in a packaged build 这一条;
  3. 点击左侧的 + 添加条目,然后点击 ... 从文件中浏览;

在弹出的窗口中找到当前环境使用的 Demo_Enviroment.umap 文件,如果你之前和我的操作步骤一样,那么这个文件在你的工程的 MyProject\Content\Downtown_West\Maps 文件夹中:

在这里插入图片描述

再重复上面的第3步,添加 AirSimAssets.umap 文件,我们在之前已经 AirSim 包拷贝到项目工程的 Plugins 文件夹中,这个文件就在 MyProject\Plugins\AirSim\Content 位置:

在这里插入图片描述

最终成品如下:
在这里插入图片描述


2. 配置打包模式

仍然是在刚才的窗口中,往下拉一点可以看到 Build Configuration 条目,在旁边的下拉框中选择 Shipping

在这里插入图片描述


3. [视情况而定] 配置 DirectX 版本

其实到上面那一步就可以直接进行发版了,通常情况下不需要额外配置 DirectX 版本,但如果你在打包结束后发现有下面的报错则说明你的电脑没有安装对应的版本或者驱动需要更新:

LowLevelFatalError [File:D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp]

还是在第二部的项目配置界面,在左侧找到 Platforms 标签,按照下面的步骤操作:

  1. 找到 Windows 并点击进入配置界面;
  2. 找到 Target RHIs 中的 Default RHI 在旁白的下拉菜单中选择一个合适的版本;

【Note】:这个 DirectX 版本是根据的显卡驱动和系统文件决定的,可以通过任务管理器在显卡那个界面中找到对应的版本。

在这里插入图片描述

打开任务管理器找到显卡,可以看见我这里安装的是 DirectX 12 ,那么在上面的选项中就选择 12 把版本。

【Note】:我发现如果选择 DirectX 11 编译也不会报错,但如果使用 DirectX 12 编译运行后有一定概率报错,如果你在12版本怎么编译都有上面的报错可以选择11重新编译,通常向下兼容问题不大。

在这里插入图片描述

执行完上面的操作记得 Ctrl + S 保存一下。


4. 配置 Shipping 编译

关闭项目配置窗口,然后按照下面的步骤操作:

  1. 在上方工具栏中找到 Platform 并打开下拉菜单;
  2. 进入 Windows 子菜单;
  3. 勾选 Shipping 选项;
  4. 点击 Package Project 按钮,会弹出一个窗口让你选择打包文件存放位置,建议新建一个文件夹;

我将打包文件放在了工程目录下新建的 Package 文件夹中。

在这里插入图片描述

然后就是等待打包结束,根据电脑配置打包时间会在 10~30 min 不等,打包过程中你的 CPU 占用率基本是满的。


5. 运行 exe 文件

在打包结束且没有报错的情况下进入 MyProject\Package\Windows 文件夹中找到MyProject.exe 双击运行:

在这里插入图片描述

然后你就可以看见场景中的无人机了,第一次运行通常比较慢,后面再运行的话就会快很多:

如果运行后报下面的错则需要回到步骤 3 重新选择 DirectX 版本:

LowLevelFatalError [File:D:\build\++UE5\Sync\Engine\Source\Runtime\D3D12RHI\Private\D3D12Util.cpp]

在这里插入图片描述

如果你已经链接 XBox 游戏手柄也可以直接试试,AirSim 中默认的操作逻辑如下:

  1. 左侧遥感前后控制高度;左侧遥感左右控制旋转;
  2. 右侧遥感前后控制前进倒退;右侧遥感左右控制平移;

6. [可选] 编译窗口模式

有时候你不希望一下打开全屏模式,而是以窗口模式运行软件,那么需要在 已经编译好的前提下 修改一处配置文件。

【Note】:我也不知道为什么 UE 不能直接在 Eidtor 中修改,如果有人知道如何直接在 Editor 中修改还请在评论区留言。

进入你的项目工程中的 MyProject/Config 文件夹,编辑文件 DefaultGameUserSettings.ini,如果没有直接新建:

在这里插入图片描述

在该文件中填入以下内容:

[/Script/Engine.GameUserSettings]
bUseVSync=False
ResolutionSizeX=1080
ResolutionSizeY=720
LastUserConfirmedResolutionSizeX=1080
LastUserConfirmedResolutionSizeY=720
WindowPosX=-1
WindowPosY=-1
FullscreenMode=2
LastConfirmedFullscreenMode=2  
Version=5
PreferredFullscreenMode=2

然后重复执行步骤 4 重新编译即可。

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

相关文章:

  • spring获取注册的bean并注册到自定义工厂中管理
  • 【大模型】大模型数据训练格式
  • 光纤采集系统
  • grafana-mcp-analyzer:基于 MCP 的轻量 AI 分析监控图表的运维神器!
  • 【计算机网络】HTTP
  • 安徽省N1 叉车司机考试题及答案解析
  • webui无法注册如何配置
  • volka 25个短语动词
  • Android动态广播注册收发原理
  • (4-point Likert scale)4 点李克特量表是什么
  • 基于cornerstone3D的dicom影像浏览器 第二十九章 自定义菜单组件
  • openvino使用教程
  • LangChain【7】之工具创建和错误处理策略
  • Linux 内核性能分析确保成效的关键知识点总结
  • Redis 过期了解
  • ​​TLV4062-Q1​​、TLV4082-Q1​​迟滞电压比较器应用笔记
  • MySQL 高级学习篇
  • 【SpringBoot自动化部署】
  • 【WebSocket】SpringBoot项目中使用WebSocket
  • 主流定位技术:Zigbee、蓝牙、UWB、RFID、5G通信介绍及对比
  • Day 41 训练
  • 鸿蒙图片缓存(一)
  • 2025年7月-12月【CISP】考试计划时间
  • 全新Xsens Animate版本是迄今为止最大的软件升级,提供更清晰的数据、快捷的工作流程以及从录制开始就更直观的体验
  • C++11 Move Constructors and Move Assignment Operators 从入门到精通
  • 现代Web安全实践:基于Token与Refresh Token的单点登录(SSO)实现
  • Java常用的判空方法
  • 数据库学习(一)——MySQL基础
  • 信息化安全与自主可控需求:国产飞腾D2000 VPX3U主板设计与实践
  • 多种风格导航菜单 HTML 实现(附源码)