在 VS Code 状态栏为虚幻引擎(Unreal Engine)环境提供 一键编译 / 一键运行 按钮。
不依赖任何 C++ 扩展(无需 cpptools),VS Code 仅作为代码编辑器使用时也能正常编译。
功能
- 自动识别:打开工作区时自动检测,识别成功才显示按钮,其他项目完全不受干扰
- 一键编译:调用引擎自带的
Build.bat,输出在名为 UE Build 的集成终端中,可随时中断
- 可切换编译目标:状态栏目标按钮列出可编译目标(编辑器 / 引擎 Program 如
UnrealLightmass、UnrealPak、ShaderCompileWorker / 项目目标),也可手动输入目标名
- 一键运行:直接启动
UnrealEditor.exe,项目模式自动附带当前项目
- 不会留下孤儿进程:关闭或重载 VS Code 窗口时自动结束整棵编译进程树;
若检测到上次会话遗留的编译进程,会提示一键清理(命令面板:
UE: 结束残留编译进程)
识别规则
| 工作区特征 |
判定 |
默认编译目标 |
运行行为 |
包含 *.uproject |
UE 游戏项目 |
<项目名>Editor |
启动编辑器并打开该项目 |
包含 UE5.sln / UE4.sln 或 Engine/Build/BatchFiles/Build.bat |
引擎源码 |
UnrealEditor(UE5Editor/UE4Editor) |
空启动编辑器 |
引擎位置自动定位:读取 .uproject 的 EngineAssociation,
安装版引擎查询注册表 HKCU\SOFTWARE\Epic Games\Unreal Engine,
源码构建引擎查询 HKCU\SOFTWARE\Epic Games\Unreal Engine\Builds。
扩展设置
| 设置项 |
默认值 |
说明 |
ueQuickButtons.buildConfiguration |
Development |
编译配置,可选 Debug / DebugGame / Development / Shipping |
ueQuickButtons.engineRootOverride |
空 |
手动指定引擎根目录,留空则自动检测 |
选择编译目标
编译虚幻引擎时并非只有编辑器一个目标。引擎自身还带了一批 Program(Engine/Source/Programs 下),
如光照构建 UnrealLightmass、打包 UnrealPak、着色器编译 ShaderCompileWorker 等,都需要单独编译。
- 状态栏左侧的
$(symbol-method) <目标名> 按钮显示当前编译目标,点击即可切换
- 目标列表来自磁盘扫描:引擎模式扫描
Engine/Source/**/*.Target.cs 与源码根目录;
游戏项目扫描项目 Source/**/*.Target.cs
- 引擎模式下额外列出常用 Program 目标(源码未磁盘附带时也可选),并支持 手动输入目标名
- 选择结果保存在当前工作区(
workspaceState),下次打开自动恢复;选回默认编辑器目标即清除自定义选择
- 命令面板:
UE: 选择编译目标
选择后的编译命令形如:
"<引擎>/Engine/Build/BatchFiles/Build.bat" UnrealLightmass Win64 Development -waitmutex
环境要求
- Windows(依赖
reg.exe 与引擎 Windows 批处理脚本)
- 已安装引擎对应的 MSVC Build Tools 与 Windows SDK(编译器本体,与 VS Code 扩展无关)
安装
- 本地安装:扩展面板 →
⋯ → 从 VSIX 安装...,选择打包生成的 .vsix 文件
- 或将本文件夹放入
%USERPROFILE%\.vscode\extensions\ 后重启 VS Code
使用
- 用 VS Code 打开 UE 项目文件夹或引擎源码根目录
- 状态栏右侧出现 $(tools) 编译 / $(play) 运行 / $(symbol-method) 目标名 按钮
- 点击目标按钮选择要编译的目标(默认编辑器;引擎下可切到
UnrealLightmass 等 Program)
- 点击编译会在
UE Build 终端执行,Ctrl+C 可随时中断;点击运行直接拉起编辑器
- 编译中途关闭窗口或重载窗口,编译进程会被自动终止,不会在后台继续占用 CPU
已知限制
- 目前仅支持 Windows 平台(Mac/Linux 可自行参考
Build.sh 改造)
- 编译错误请在
UE Build 终端输出中查看(未接问题面板,不依赖 C++ 扩展)
- 多根工作区仅识别第一个文件夹
发布记录
版本变更历史见扩展目录内的 CHANGELOG.md。
| |