GameWorld 项目专用的 VS Code 辅助工具插件。
功能
1. 道具字典悬停提示
插件会读取道具字典文件:
Assets/MainGame/DevTool/PropEditor/dict.txt
在任意文件中,把鼠标悬停到道具 id 或预置体名字上,就能看到对应信息:
3341008 -> ID3341BoothChair1
ID3341BoothChair1 -> 3341008
例如 dict.txt 中有这一行:
3341008 ID3341BoothChair1 雅座餐椅1 0
悬停到 3341008 时会显示 ID3341BoothChair1;悬停到
ID3341BoothChair1 时会显示 3341008。
2. Lua 热更工具(右键菜单)
移植 Unity 编辑器中的热更功能,在 VS Code 文件资源管理器中右键使用:
- 复制 Lua 脚本到热更路径:右键选中
.lua 文件或文件夹,将 Lua 文件复制到 Library/U2dHotFix/Common/MainGame/{去除Assets/后的相对路径},保持原始目录结构,匹配 LuaHotFixHelper.cs 的逻辑。
- 压缩热更路径为 zip:右键任意位置,将
Library/U2dHotFix 目录压缩为 Library/U2dHotFix.zip。
3. ENUM_PURCHASE_ID 悬停映射
在 Lua 文件中,将光标悬停在数字 ID 字符串(如 "302001")上时,显示:
枚举:ENUM_PURCHASE_ID.ROLE_UPDATE
ID: 302001
名称: 角色升级包
数据源为 CommonEnum.lua 中的 ENUM_PURCHASE_ID 枚举表,支持 -- "名称" 和 --- 名称 两种注释格式。
性能说明
- 字典文件会懒加载,首次需要查询时才读取。
- 读取后会缓存在内存中,悬停查询时不会反复扫描源文件。
- 当源文件被修改、创建或删除时,插件会自动清理缓存,下次查询重新加载。
- 如果同一个 id 或预置体名匹配到多条记录,悬停窗口默认最多显示 20 条。
插件设置
| 设置项 |
默认值 |
说明 |
gameworldTools.propDictionaryPath |
Assets/MainGame/DevTool/PropEditor/dict.txt |
道具字典路径 |
gameworldTools.maxHoverMatches |
20 |
悬停最多显示匹配数 |
gameworldTools.luaHotFixTargetPath |
(空) |
Lua 热更目标项目根路径,留空使用当前工作区 |
gameworldTools.purchaseIdEnumPath |
Assets/MainGame/Common/LuaScripts/Const/CommonEnum.lua |
ENUM_PURCHASE_ID 枚举定义文件路径 |
排查方法
如果悬停没有显示:
- 打开扩展页,确认
gameworld-tools 是启用状态。如果按钮显示"启用",说明插件当前没有运行,需要先点"启用"。
- 道具字典:在命令面板执行
GameWorld Tools: 查看道具字典状态,确认插件找到了 dict.txt,并且记录数量不是 0。
- ENUM_PURCHASE_ID:在命令面板执行
GameWorld Tools: 查看 ENUM_PURCHASE_ID 字典状态,确认解析到了记录。
- 如果项目不是从 Unity 工程根目录打开的,可以在设置里把对应路径改成绝对路径。
- 修改字典文件后,可以执行对应的"重新加载"命令立即刷新缓存。
安装方式
使用 VS Code 的 "Install from VSIX..." 功能,选择生成好的安装包:
gameworld-tools-0.0.3.vsix
开发调试
用 VS Code 打开 gameworld-tools 目录,按 F5 启动 Extension Development Host。插件零外部依赖,无需 npm install。
重新打包本地 .vsix:
npx --yes @vscode/vsce package