1. UE4 Python 脚本开发为什么要在 VS Code 里接 AI 辅助
UE4(Unreal Engine 4)从 4.20 开始内置了 Python Editor Script Plugin,你可以用 Python 直接操作编辑器:批量导入资产、自动生成关卡、跑数据校验、写工具面板。但真正写起来会发现两个痛点:一是unreal.py这个 Stub 文件巨大,靠记忆写 API 基本不可能;二是引擎自带的 Python 是 2.7 版本,很多现代补全工具对它支持一般。
我试过纯靠 VS Code 的 Pylance 硬扛,结果unreal.EditorAssetLibrary这类命名空间下的方法提示时有时无,写一个批量重命名资产的脚本要反复查文档。后来把 AI 补全接进 VS Code,让模型基于当前文件上下文补全unreal.开头的调用,效率才明显起来。
这篇要解决的就是这条落地路径:在 VS Code 里为 UE4 Python 脚本开发配置 AI 辅助编码,用 TaoToken 的统一 Key 和 API 通道接入 VS Code 的 AI 插件,给出一份可直接复制的settings.json配置骨架,最后做一次连通性验证,确认智能补全和调试辅助能一次性跑通。适合已经在用 UE4、会一点 Python、但还没把 AI 编码工具接进工作流的开发者。
核心检索词先摆出来:VS Code、UE4、Python、TaoToken、settings.json、unreal.py、PythonStub。下面按“先备好引擎侧环境 → 再配 TaoToken 通道 → 再写 settings.json → 再验证 → 再排障”的顺序走。
2. 前置准备:UE4 侧 Python 环境与 TaoToken 通道
2.1 启用 Python Editor Script Plugin 并生成 unreal.py
打开 UE4 项目,进入 Edit > Plugins,搜索 Python,勾选Python Editor Script Plugin,重启编辑器。然后在 Edit > Project Settings > Plugins > Python 里,把Developer Mode打开。
开启开发者模式后,引擎会在项目目录下生成 Stub 文件:
你的项目\Intermediate\PythonStub\unreal.py这个unreal.py就是所有unreal.*API 的类型声明来源,VS Code 的补全和跳转全靠它。如果这个文件没生成,后面配了 AI 插件也补不出准确的unreal.方法签名,所以这一步必须先确认文件存在。
2.2 找到引擎自带的 python.exe
UE4 自带 Python 2.7,路径通常在:
D:\Program Files\UE_4.22\Engine\Binaries\ThirdParty\Python\Win64\python.exe你的引擎版本和安装盘符可能不同,按实际路径替换。这个python.exe是后面settings.json里要指向的解释器,不要指向系统装的 Python 3,否则unreal模块导入会失败。
2.3 在 TaoToken 拿统一 Key
TaoToken 在这里的角色是统一 Key / API 通道:你不需要为每个 AI 插件单独申请一套凭证,用同一个 Key 就能让 VS Code 里的 AI 插件走同一条 API 通道。接入前先去控制台创建 Key:
- 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
- API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
创建后复制那串 Key,形如sk-xxxx,先存到本地密码管理器,别直接贴进会提交到 Git 的文件里。API 基础地址用:
https://taotoken.net/api注意这个 API 地址后面不加 UTM 参数,直接作为baseURL填进插件配置即可。如果你还没决定用哪个模型,可以先去模型对话页面试一下补全风格:
- 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite
3. 可复制配置:settings.json 骨架与 AI 插件接入
3.1 先装 VS Code 的 Python 插件
在 VS Code 扩展市场搜索 Python(Microsoft 出品)安装。这个插件负责解释器选择、补全、调试。装完后按Ctrl+Shift+P,输入Python: Select Interpreter,先手动指到 2.2 里那个引擎的python.exe,确认能选中。
3.2 settings.json 完整骨架
打开命令面板Ctrl+Shift+P,输入Preferences: Open Settings (JSON),把下面这份骨架合并进去。路径部分按你自己的引擎目录和项目目录替换:
{ "workbench.colorTheme": "Visual Studio Light", "extensions.autoUpdate": false, "python.pythonPath": "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\python.exe", "python.autoComplete.extraPaths": [ "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\Lib", "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\python27.zip", "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\DLLs", "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\lib", "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\lib\\plat-win", "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\lib\\lib-tk", "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64", "D:\\Program Files\\UE_4.22\\Engine\\Binaries\\ThirdParty\\Python\\Win64\\lib\\site-package", "D:\\LiJIngsong_File\\UE4 Projects\\Temp_Script\\Intermediate\\PythonStub" ], "python.analysis.extraPaths": [ "D:\\LiJIngsong_File\\UE4 Projects\\Temp_Script\\Intermediate\\PythonStub" ], "python.languageServer": "Pylance", "editor.quickSuggestions": { "other": true, "comments": false, "strings": true }, "editor.suggest.snippetsPreventQuickSuggestions": false }几个关键点说明:
python.pythonPath指向引擎的 Python 2.7,保证import unreal能解析。python.autoComplete.extraPaths里最后一项必须是PythonStub目录,否则unreal.的补全不出来。python.analysis.extraPaths是给 Pylance 用的,和上面那条作用类似但走的是新语言服务器,两条都留着更稳。
3.3 接入 AI 插件的配置段
VS Code 里常见的 AI 补全插件(如 Continue、Cline 这类支持自定义 OpenAI 兼容端点的)都可以把baseURL指向 TaoToken。以 Continue 的config.json为例,模型段这样写:
{ "models": [ { "title": "TaoToken", "provider": "openai", "model": "claude-sonnet-4-20250514", "apiBase": "https://taotoken.net/api", "apiKey": "sk-你的Key", "contextLength": 128000 } ], "tabAutocompleteModel": { "title": "TaoToken Autocomplete", "provider": "openai", "model": "claude-sonnet-4-20250514", "apiBase": "https://taotoken.net/api", "apiKey": "sk-你的Key" } }apiBase就是https://taotoken.net/api,apiKey填你在 2.3 拿到的 Key。tabAutocompleteModel这一段是行内补全用的,写unreal.时按 Tab 就能触发。如果你更习惯用 Claude Code 那套命令行工作流,也可以看下 Coding Plan 的接入方式:
- Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
注意:Key 不要写进项目仓库里的
.vscode/settings.json,那个文件容易被提交。放在用户级 settings 或插件的全局 config 里,或者用环境变量注入。
4. 验证请求:确认补全与调试辅助跑通
4.1 写一个最小 UE4 Python 脚本
在项目里新建Scripts/rename_assets.py,写一段真实会用到的东西:
import unreal def list_selected_assets(): selected = unreal.EditorUtilityLibrary.get_selected_assets() for asset in selected: unreal.log("Asset: {}".format(asset.get_name())) if __name__ == "__main__": list_selected_assets()把光标放在unreal.EditorUtilityLibrary.后面,按Ctrl+Space手动触发补全。如果get_selected_assets能出现在候选列表里,说明PythonStub路径配对了。再在unreal.后面敲几个字母,看 AI 行内补全是否给出建议。
4.2 用命令行验证 TaoToken 通道
在 VS Code 终端里跑一条 curl,确认 Key 和 API 地址通:
curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的Key" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "用一句话说明 unreal.EditorAssetLibrary 的用途"}] }'返回里能看到choices字段和一段文本,就说明通道是通的。如果返回 401,检查 Key 是否复制完整;返回 404,检查apiBase是不是写成了带/v1的重复路径。
4.3 在编辑器里跑脚本
回到 UE4,打开 Output Log,把输入模式切到Python,执行:
exec(open(r"D:\LiJIngsong_File\UE4 Projects\Temp_Script\Scripts\rename_assets.py").read())选中几个资产后运行,Output Log 里应该打印出资产名。这一步跑通,说明“VS Code 写代码 + 引擎执行”的闭环成立,AI 补全只是在这个闭环上加速。
5. 本篇常见错排查
5.1 unreal 模块导入失败
报错ImportError: No module named unreal,九成是python.pythonPath指错了。确认它指向的是引擎目录下的python.exe,不是系统 Python。另外PythonStub目录必须存在,没生成就回 2.1 重新开开发者模式。
5.2 补全里没有 unreal. 的方法
python.autoComplete.extraPaths里PythonStub那条路径写错了,或者项目路径里有空格没转义。JSON 里反斜杠要写成\\,路径含空格没问题但别漏引号。改完重启 VS Code 窗口(Ctrl+Shift+P→Developer: Reload Window)。
5.3 AI 插件报 401 / 403
Key 失效或没带Bearer前缀。检查插件配置里apiKey字段是否只填了 Key 本身,有些插件会自动加Bearer,有些要你手写。用 4.2 的 curl 先排除 Key 问题,再回头查插件。
5.4 补全延迟高、频繁超时
行内补全对延迟敏感,把tabAutocompleteModel换成一个更轻的模型,或者把contextLength调小。另外确认网络到https://taotoken.net/api的连通性稳定,必要时在插件里把超时时间从默认 10s 调到 20s。
5.5 调试器断点不生效
VS Code 的 Python 调试器默认走 debugpy,对 Python 2.7 支持有限。UE4 脚本调试更推荐用unreal.log打日志 + Output Log 观察,或者在脚本里import pdb; pdb.set_trace()走命令行调试。别指望在 VS Code 里对unreal模块下断点能停住。
6. 把这条链路固定成日常开发流
配置一次之后,日常流程就是:VS Code 里写Scripts/xxx.py,靠unreal.pyStub 和 AI 补全把 API 写对,保存后在 UE4 Output Log 里exec执行,看日志调。需要查某个 API 的用法时,直接在模型对话里问,比翻文档快:
- 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite
如果你后面要把这套接进更长的编码任务或 Agent 工作流,Coding Plan 那条通道更适合持续调用:
- Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
接入文档和 Key 管理分别在这里,排障时对着看:
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
- API Keys:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
一个实用技巧:把PythonStub目录加进 VS Code 的files.watcherExclude,避免引擎重新生成unreal.py时触发大量文件索引,补全会更跟手。