# 配置表联动关系查看器

一个用于查看 Unity 项目中配置表联动关系的编辑器工具，支持跨项目复用。

## 功能特性

### 1. 配置表列表
- 支持搜索过滤配置表
- 显示表是否存在于当前项目
- 支持 TXT 文件（如敏感词表）

### 2. 联动关系查看
- 查看当前表关联哪些其他表
- 显示字段联动关系详情
- 支持跳转到关联表

### 3. 反向查询
- 查看哪些表引用了当前表
- 快速定位依赖关系

### 4. 数据格式可视化
- 自动解析数据格式
- 显示格式示例和说明
- 支持多种格式：item_id_num, id_pos_lv, id_lv_num 等

### 5. Excel 操作
- 一键打开配置表 Excel 文件
- 批量打开所有关联表

### 6. 跨项目适配
- 自动检测项目中存在的配置表
- 支持不同项目配置不同路径

## 安装指南

### 方法一：复制文件
1. 复制 `ConfigLinkViewer` 文件夹到目标项目
2. 路径：`Assets/Editor/ConfigLinkViewer/`

### 方法二：Git 子模块
```bash
git submodule add <repository-url> Assets/Editor/ConfigLinkViewer
```

## 使用说明

### 打开工具
在 Unity 编辑器菜单中点击：`Tools → 配置表联动查看器`

### 设置 Excel 路径
1. 点击"选择文件夹"按钮
2. 选择包含配置表 Excel 文件的文件夹
3. 路径会自动保存

### 基本操作
| 操作 | 说明 |
|------|------|
| 单击列表项 | 选中配置表，查看详情 |
| 点击"打开表格" | 打开当前表的 Excel 文件 |
| 点击"批量打开关联表" | 打开所有关联的配置表 |
| 勾选"显示反向引用" | 查看哪些表引用了当前表 |

### 数据格式说明

| 格式 | 示例 | 说明 |
|------|------|------|
| 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 文件夹中

## 更新日志

### v1.0.0
- 初始版本
- 支持配置表列表和联动关系查看

### v1.1.0
- 添加反向查询功能
- 添加数据格式可视化
- 添加批量打开关联表功能

### v1.2.0
- 支持 TXT 文件识别
- 优化跨项目适配
- 更新使用文档

### v1.3.0
- 移除所有水平滚动条
- 左右面板自适应布局
- Excel文件夹路径与搜索框对齐
- 文本保持单行显示不换行
- 窗口默认大小优化为 900×600

## 许可证

MIT License
