更新插件功能

This commit is contained in:
ShallowT1Dream
2026-05-29 16:57:16 +08:00
parent d06041c0de
commit 00eafcb5f9
3 changed files with 523 additions and 209 deletions

View File

@@ -1,144 +1,159 @@
# 配置表联动查看器
# 配置表联动关系查看器
一个用于 Unity 项目配置表联动关系可视化工具,支持跨项目复用。
一个用于查看 Unity 项目配置表联动关系的编辑器工具,支持跨项目复用。
## 功能特性
- ✅ 支持 76+ 配置表的联动关系查看
- ✅ 自动检测项目中实际存在的配置表
- ✅ 智能搜索功能
- ✅ 快速跳转到关联表
- ✅ 显示数据格式说明
- ✅ 跨项目自动适配
### 1. 配置表列表
- 支持搜索过滤配置表
- 显示表是否存在于当前项目
- 支持 TXT 文件(如敏感词表)
### 2. 联动关系查看
- 查看当前表关联哪些其他表
- 显示字段联动关系详情
- 支持跳转到关联表
### 3. 反向查询
- 查看哪些表引用了当前表
- 快速定位依赖关系
### 4. 数据格式可视化
- 自动解析数据格式
- 显示格式示例和说明
- 支持多种格式item_id_num, id_pos_lv, id_lv_num 等
### 5. Excel 操作
- 一键打开配置表 Excel 文件
- 批量打开所有关联表
### 6. 跨项目适配
- 自动检测项目中存在的配置表
- 支持不同项目配置不同路径
## 安装指南
### 方法一:复制文件
1. 复制 `ConfigLinkViewer` 文件夹到目标项目
2. 路径:`Assets/Editor/ConfigLinkViewer/`
1. 找到本项目中的 `ConfigLinkViewer` 文件夹:
```
Assets/Scripts/mgame/tools/ConfigLinkViewer/
```
2. 复制整个文件夹到目标项目的任意位置(建议保持相同路径):
```
目标项目/Assets/Scripts/mgame/tools/ConfigLinkViewer/
```
3. 打开 Unity等待脚本编译完成。
### 方法二Git 子模块(推荐)
### 方法二Git 子模块
```bash
cd 你的项目目录
git submodule add <本工具仓库地址> Assets/Scripts/mgame/tools/ConfigLinkViewer
git submodule add <repository-url> Assets/Editor/ConfigLinkViewer
```
## 使用说明
### 打开工具
在 Unity 编辑器菜单中点击:`Tools → 配置表联动查看器`
在 Unity 编辑器菜单中点击:
```
Tools → 配置表联动查看器
```
### 设置 Excel 路径
1. 点击"选择文件夹"按钮
2. 选择包含配置表 Excel 文件的文件夹
3. 路径会自动保存
### 界面说明
| 区域 | 说明 |
### 基本操作
| 操作 | 说明 |
|------|------|
| 搜索框 | 按表名、显示名、描述搜索配置表 |
| 过滤选项 | 可选择只显示当前项目存在的表 |
| 左侧列表 | 配置表列表,显示状态标记 |
| 右侧详情 | 显示选中表的联动关系 |
| 单击列表项 | 选中配置表,查看详情 |
| 点击"打开表格" | 打开当前表的 Excel 文件 |
| 点击"批量打开关联表" | 打开所有关联的配置表 |
| 勾选"显示反向引用" | 查看哪些表引用了当前表 |
### 操作指南
1. **选择配置表**:从左侧列表点击任意配置表
2. **查看联动关系**:右侧显示该表的所有字段关联
3. **展开详情**:点击折叠箭头查看详细信息
4. **跳转到关联表**:点击"查看 xxx 表"按钮跳转
5. **搜索过滤**:在搜索框输入关键词快速定位
### 状态标识说明
| 标记 | 含义 |
|------|------|
| [存在] | 该表存在于当前项目 |
| [缺失] | 该表不存在于当前项目 |
| [目标表缺失] | 联动目标表不存在于当前项目 |
## 跨项目适配
工具会自动检测目标项目中的配置表:
1. 扫描路径:`Resources/Resources_moved/config/*.json`
2. 自动标记哪些表存在/缺失
3. 缺失的表不会影响工具正常运行
4. 联动到缺失表的跳转按钮会自动禁用
## 配置表联动关系示例
### 敌人表 (enemy)
- reward_id → checkpointreward.id - 掉落奖励
- skills → skill.id - 技能列表
### 商店表 (mall)
- productId → prop.id - 商品道具ID
- consumes → prop.id (格式: item_id_num) - 购买消耗
- rewards → prop.id (格式: item_id_num) - 购买获得奖励
### 英雄表 (hero)
- skills → skill.id - 技能列表
- equips → equip.id - 装备列表
- buffs → buff.id - 升阶解锁buff
## 数据格式说明
### 数据格式说明
| 格式 | 示例 | 说明 |
|------|------|------|
| item_id_num | 1001_5 | 道具ID_数量 |
| type_id_num | item_1001_5 | 类型_道具ID_数量 |
| id_pos_lv | 101_2_5 | ID_位置_等级 |
| id_lv_num | 101_5_3 | ID_等级_数量 |
| id_lv_num_time | 101_5_3_30 | ID_等级_数量_时间 |
| 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()` 方法中添加:
### 添加新配置表
编辑 `ConfigLinkDatabase.cs`,在 `GetAllTableInfo()` 方法中添加新表:
```csharp
new ConfigTableInfo {
tableName = "新表名",
displayName = "显示名称",
description = "表描述",
tableName = "new_table",
displayName = "新表",
description = "新表描述",
relations = new List<FieldRelation> {
new FieldRelation {
fieldName = "字段名",
targetTable = "目标表名",
targetField = "目标字段",
relationFormat = "数据格式(可选)",
description = "说明文字"
fieldName = "field1",
targetTable = "target_table",
targetField = "id",
description = "关联说明"
}
}
}
```
### 清理缓存
## 文件结构
如果配置表有变动,可以调用:
```csharp
ConfigLinkDatabase.ClearCache();
```
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.0*
*最后更新: 2026年5月*
1. Excel 文件命名必须与配置表名一致(如 `enemy.xlsx`
2. 路径设置后会自动保存到 PlayerPrefs
3. 建议将 Excel 文件夹设置为版本控制忽略
4. TXT 文件需要放置在 Excel 文件夹中
## 更新日志
### v1.0.0
- 初始版本
- 支持配置表列表和联动关系查看
### v1.1.0
- 添加反向查询功能
- 添加数据格式可视化
- 添加批量打开关联表功能
### v1.2.0
- 支持 TXT 文件识别
- 优化跨项目适配
- 更新使用文档
### v1.3.0
- 移除所有水平滚动条
- 左右面板自适应布局
- Excel文件夹路径与搜索框对齐
- 文本保持单行显示不换行
- 窗口默认大小优化为 900×600
## 许可证
MIT License