1. 环境准备:避开那些官方文档没说的坑
第一次在Windows上部署AirSim时,我按照官方文档操作却连续卡了三天。后来发现,官方教程往往假设你的系统是"纯净状态",而现实中我们总会遇到各种环境冲突。先说几个关键点:
Visual Studio版本:官方推荐2022,但实测2019也能用。关键是要在安装时勾选"使用C++的桌面开发"和Windows 10 SDK 8.1(注意不是越新越好)。我遇到过SDK版本过高导致CMake报错的情况,错误提示是"Could not find Windows SDK version 8.1",这时候需要到Visual Studio Installer里单独安装旧版SDK。
磁盘空间:建议预留至少50GB。有次我在C盘空间只剩20GB时编译,中途报错"fatal error C1002: compiler is out of heap space",清理磁盘后才解决。最好把工程放在固态硬盘上,机械硬盘的编译时间可能多出3倍。
系统账户名:如果你的Windows用户名包含中文或特殊字符,可能遇到路径解析问题。比如我的同事"张三"的电脑上,CMake总是报"invalid character in path",后来新建英文账户才解决。
2. 依赖安装:这些组件缺一不可
2.1 虚幻引擎的隐藏关卡
官方说下载Epic Games Launcher就能安装UE4,但有几个细节要注意:
- 启动器里默认显示最新版UE5,但AirSim目前对UE4.27兼容性最好。需要在"Library"标签页手动点击"+"号,选择4.27版本安装。
- 安装完成后务必重启电脑,否则可能出现"UE4Editor.modules could not be found"错误。
- 如果之前安装过其他版本,到"编辑→编辑器偏好设置→常规→源代码"里确认当前使用的UE版本。
2.2 CMake的版本陷阱
最新版CMake不一定最好用。当出现"Could not create named generator Visual Studio 16 2019"错误时,可以尝试以下组合:
| CMake版本 | Visual Studio版本 | 兼容性 |
|---|---|---|
| 3.22+ | VS2022 | ★★★★☆ |
| 3.18-3.21 | VS2019 | ★★★★★ |
| 3.15-3.17 | VS2017 | ★★★☆☆ |
我推荐使用3.21.1版本,下载后记得将cmake.exe路径(通常是C:\Program Files\CMake\bin)添加到系统PATH变量。验证方法是在PowerShell运行:
cmake --version3. 构建过程:当build.cmd报错时怎么办
3.1 高频错误排查手册
这是我在不同机器上遇到的真实案例:
案例一:error C1189: #error: corecrt.h: No such file or directory
- 原因:Windows SDK路径未正确识别
- 解决方案:
# 在PowerShell中设置环境变量 $env:WindowsSdkDir = "C:\Program Files (x86)\Windows Kits\10" $env:WindowsSDKVersion = "10.0.19041.0\"案例二:LINK : fatal error LNK1181: cannot open input file 'ws2_32.lib'
- 原因:VC++目录配置错误
- 解决方案:在VS开发者命令提示符中运行:
vcvarsall.bat x64案例三:构建成功但Unreal中看不到AirSim插件
- 检查
Unreal\Plugins\AirSim是否包含这些关键文件:AirSim.upluginBinaries\Win64\AirSim.dllContent\Scripts\hello_drone.py
3.2 加速编译的技巧
在16核机器上完整构建需要约30分钟,这几个参数可以节省时间:
build.cmd --build-unreal --no-full-poly-car # 跳过高清车辆模型 build.cmd --jobs=8 # 并行编译任务数 set CL=/MP # 启用多处理器编译4. 首次运行:从Blocks到自定义场景
4.1 基础验证流程
- 打开
Unreal\Environments\Blocks\Blocks.sln - 在VS顶部菜单选择"DebugGame Editor"和"Win64"
- 点击运行按钮,等待Unreal编辑器启动
- 在编辑器里点击"播放"按钮,应该能看到这样的控制台输出:
LogAirSim: AirSim: Connected LogAirSim: Vehicle: Using SimpleFlight as default flight controller4.2 自定义环境集成
把AirSim插件移植到自己的Unreal项目时,最容易漏掉这个步骤:
- 右键项目.uproject文件 → 生成Visual Studio项目文件
- 编辑项目目录下的
Config\DefaultEngine.ini,添加:
[AirSim] SimMode=Car # 或Multirotor ViewMode=FlyWithMe- 检查
Plugins文件夹权限,有时需要手动赋予完全控制权限
4.3 性能优化参数
在Documents\AirSim\settings.json中添加这些配置可以提升帧率:
{ "ViewMode": "NoDisplay", "CaptureSettings": { "TargetGamma": 1.5, "UseDirectX11": true }, "Recording": { "RecordOnMove": false, "RecordInterval": 0 } }记得第一次运行时要关闭杀毒软件实时防护,我测试时发现Windows Defender会使帧率下降40%。如果要用Python API,建议创建conda环境:
conda create -n airsim python=3.8 conda install -c anaconda numpy msgpack-rpc-python pip install airsim