# 配置表联动关系查看器 一个用于查看 Unity 项目中配置表联动关系的编辑器工具,支持跨项目复用。 ## 功能特性 ### 1. 配置表列表 - 支持搜索过滤配置表 - 显示表是否存在于当前项目 - 支持 TXT 文件(如敏感词表) ### 2. 联动关系查看 - 查看当前表关联哪些其他表 - 显示字段联动关系详情 - 支持跳转到关联表 ### 3. 反向查询 - 查看哪些表引用了当前表 - 快速定位依赖关系 ### 4. 数据格式可视化 - 自动解析数据格式 - 显示格式示例和说明 - 支持多种格式:item_id_num, id_pos_lv, id_lv_num 等 ### 5. Excel 操作 - 一键打开配置表 Excel 文件 - 批量打开所有关联表 ### 6. 导出配置 - 一键将 Excel 配置表批量导出为 JSON 和 C# 代码 - 通过 Tools → ConfigDeal → 导出配置 或窗口右上角按钮触发 ### 7. 清理 Excel 空行 - 自动扫描 Excel 文件夹中所有 .xlsx 文件 - 检测并删除数据区域中第一列(id列)为空或非数字的行 - 直接修改 Excel 源文件,清理后可重新导出配置 - 通过窗口右上角"清理Excel空行"按钮触发 ### 8. 跨项目适配 - 自动检测项目中存在的配置表 - 支持不同项目配置不同路径 ## 安装指南 ### 方法一:复制文件 1. 复制 `ConfigLinkViewer` 文件夹到目标项目 2. 路径:`Assets/Editor/ConfigLinkViewer/` ### 方法二:Git 子模块 ```bash git submodule add Assets/Editor/ConfigLinkViewer ``` ## 使用说明 ### 打开工具 在 Unity 编辑器菜单中点击:`Tools → 配置表联动查看器` ### 设置 Excel 路径 1. 点击"选择文件夹"按钮 2. 选择包含配置表 Excel 文件的文件夹 3. 路径会自动保存 ### 基本操作 | 操作 | 说明 | |------|------| | 单击列表项 | 选中配置表,查看详情 | | 点击"打开表格" | 打开当前表的 Excel 文件 | | 点击"批量打开关联表" | 打开所有关联的配置表 | | 勾选"显示反向引用" | 查看哪些表引用了当前表 | | 点击"清理Excel空行" | 清除 Excel 中 id 列为空的垃圾数据行 | | 点击"导出配置" | 将 Excel 批量导出为 JSON 和 C# 代码 | ### 数据格式说明 | 格式 | 示例 | 说明 | |------|------|------| | item_id_num | 1001_10_5 | 类型:1001, ID:10, 数量:5 | | type_id_num | 1001_10_5 | 类型:1001, ID:10, 数量:5 | | id_pos_lv | 100_1_30 | ID:100, 位置:1, 等级:30 | | id_lv_num | 100_30_5 | ID:100, 等级:30, 数量:5 | | id_lv_num_time | 100_30_5_120 | ID:100, 等级:30, 数量:5, 时间:120秒 | | buffid_lv | 5_3 | BuffID:5, 等级:3 | | rune_id_num | 10_2 | 符文ID:10, 数量:2 | | equip_id_num | 20_1 | 装备ID:20, 数量:1 | ## 跨项目复用 ### 自动检测 工具会自动检测目标项目中的配置表: - 检查 `Resources/Resources_moved/config/` 目录 - 检查 `Resources/config/` 目录 - TXT 文件检查 Excel 文件夹 ### 添加新配置表 编辑 `ConfigLinkDatabase.cs`,在 `GetAllTableInfo()` 方法中添加新表: ```csharp new ConfigTableInfo { tableName = "new_table", displayName = "新表", description = "新表描述", relations = new List { new FieldRelation { fieldName = "field1", targetTable = "target_table", targetField = "id", description = "关联说明" } } } ``` ## 文件结构 ``` Assets/Editor/ConfigLinkViewer/ ├── ConfigLinkDatabase.cs # 配置表数据和联动关系存储 ├── ConfigLinkViewerWindow.cs # Unity编辑器窗口界面(含导出配置、清理空行功能) └── README.md # 使用文档 ``` ## 支持的配置表 工具包含以下类型的配置表支持: - 活动系统:activity, activityreward - 成就系统:achievement - 战斗系统:fight_fb1~4, fight_arena, fight_sample - 英雄系统:hero, herolevel, herostage - 道具系统:prop, mall - 装备系统:equip, equiplevel, equipstage - 技能系统:skill, skilllevel - 符文系统:rune, runelevel - 任务系统:quest - VIP系统:vip, recharge - 服务端文件:dirty_words.txt, 奖励格式说明.txt ## 注意事项 1. Excel 文件命名必须与配置表名一致(如 `enemy.xlsx`) 2. 路径设置后会自动保存到 PlayerPrefs 3. 建议将 Excel 文件夹设置为版本控制忽略 4. TXT 文件需要放置在 Excel 文件夹中 5. 推荐工作流:先点击"清理Excel空行"清除垃圾数据,再点击"导出配置"生成 JSON 和 C# 代码 6. 清理空行会直接修改 Excel 源文件,建议操作前确认已提交到版本控制 ## 更新日志 ### v1.0.0 - 配置表列表展示,支持搜索过滤和存在性检测 - 联动关系查看,支持正向关联和反向引用查询 - 数据格式可视化,自动解析并显示格式示例 - 支持 TXT 文件识别 - 左右面板自适应布局,窗口默认 900×600 - 一键打开 Excel 文件,支持批量打开关联表 - Excel 文件夹路径设置,自动保存到 PlayerPrefs - 跨项目适配,自动检测项目中存在的配置表 - "导出配置"按钮,一键将 Excel 批量导出为 JSON 和 C# 代码 - "清理Excel空行"功能,自动检测并删除 Excel 中 id 列为空的垃圾数据行,直接操作 xlsx 内部 XML,兼容性好 ## 许可证 MIT License