165 lines
5.3 KiB
Markdown
165 lines
5.3 KiB
Markdown
# 配置表联动关系查看器
|
||
|
||
一个用于查看 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 <repository-url> 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<FieldRelation> {
|
||
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
|