修改配置的插件
This commit is contained in:
@@ -4,75 +4,73 @@
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 1. 配置表列表
|
||||
- 支持搜索过滤配置表
|
||||
- 显示表是否存在于当前项目
|
||||
- 支持 TXT 文件(如敏感词表)
|
||||
- **配置表列表**:搜索过滤、存在性检测、支持 TXT 文件
|
||||
- **联动关系查看**:正向关联和反向引用查询,支持跳转到关联表
|
||||
- **数据格式可视化**:自动解析 item_id_num、id_lv_num 等复合格式
|
||||
- **Excel 操作**:一键打开配置表,批量打开关联表
|
||||
- **导出配置**:批量导出为 JSON 和 C# 代码
|
||||
- **清理空行**:自动检测并删除 Excel 中 id 列为空的垃圾数据行,支持 sharedStrings 解析
|
||||
- **跨项目适配**:基于 `ConfigLinkData.json`,一键生成骨架并由 AI 补全
|
||||
|
||||
### 2. 联动关系查看
|
||||
- 查看当前表关联哪些其他表
|
||||
- 显示字段联动关系详情
|
||||
- 支持跳转到关联表
|
||||
## 安装
|
||||
|
||||
### 3. 反向查询
|
||||
- 查看哪些表引用了当前表
|
||||
- 快速定位依赖关系
|
||||
1. 复制 `ConfigLinkViewer` 文件夹到目标项目的 `Assets/Editor/` 下
|
||||
2. 或使用 Git 子模块:
|
||||
```bash
|
||||
git submodule add <repository-url> Assets/Editor/ConfigLinkViewer
|
||||
```
|
||||
|
||||
### 4. 数据格式可视化
|
||||
- 自动解析数据格式
|
||||
- 显示格式示例和说明
|
||||
- 支持多种格式:item_id_num, id_pos_lv, id_lv_num 等
|
||||
## 快速上手
|
||||
|
||||
### 5. Excel 操作
|
||||
- 一键打开配置表 Excel 文件
|
||||
- 批量打开所有关联表
|
||||
Unity 编辑器菜单:`Tools → 配置表联动查看器`
|
||||
|
||||
### 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# 代码 |
|
||||
| 清理Excel空行 | 扫描 Excel 文件夹,删除 id 列为空或非数字的垃圾数据行 |
|
||||
| 导出配置 | 将 Excel 批量导出为游戏运行时的 JSON 和 C# 代码 |
|
||||
| 打开表格 | 打开当前选中表的 Excel 文件 |
|
||||
| 批量打开关联表 | 打开所有关联的配置表 |
|
||||
|
||||
### 数据格式说明
|
||||
**查看器配置(首次使用或跨项目时):**
|
||||
|
||||
| 按钮 | 说明 |
|
||||
|------|------|
|
||||
| 生成配置 | 从 Excel 文件夹扫描生成 `ConfigLinkData.json` 骨架文件(仅表名) |
|
||||
| 补全配置 | 运行 Python 脚本自动识别字段引用关系,补全 `ConfigLinkData.json` |
|
||||
| 刷新 | 重新加载 `ConfigLinkData.json` |
|
||||
| 显示反向引用 | 查看哪些表引用了当前选中的表 |
|
||||
|
||||
## 使用流程
|
||||
|
||||
### 流程一:首次配置 / 跨项目使用
|
||||
|
||||
将本工具引入新项目时,需要初始化 `ConfigLinkData.json`:
|
||||
|
||||
1. 点击"选择文件夹",设置 Excel 文件夹路径
|
||||
2. 点击 **"生成配置"** — 扫描 Excel 文件夹,生成骨架(只有表名,没有引用关系)
|
||||
3. 点击 **"补全配置"** — 运行 Python 脚本自动分析 config JSON,补全引用关系和中文名
|
||||
4. 在左侧列表点击表名,查看联动关系是否准确
|
||||
5. 如有遗漏或不准确,手动编辑 `ConfigLinkData.json` 后点击"刷新"
|
||||
|
||||
### 流程二:日常数据维护
|
||||
|
||||
策划修改 Excel 后,需要导出给程序使用:
|
||||
|
||||
1. 点击 **"清理Excel空行"** — 清除 Excel 中 id 列为空的垃圾行
|
||||
2. 点击 **"导出配置"** — 将 Excel 批量导出为 JSON 和 C# 代码
|
||||
|
||||
### 流程三:查看联动关系
|
||||
|
||||
在左侧列表选中一张表,右侧面板会显示:
|
||||
- 正向关联:该表引用了哪些其他表
|
||||
- 反向引用(勾选"显示反向引用"):哪些表引用了该表
|
||||
- 数据格式示例和说明
|
||||
|
||||
## 数据格式说明
|
||||
|
||||
| 格式 | 示例 | 说明 |
|
||||
|------|------|------|
|
||||
@@ -85,65 +83,69 @@ git submodule add <repository-url> Assets/Editor/ConfigLinkViewer
|
||||
| rune_id_num | 10_2 | 符文ID:10, 数量:2 |
|
||||
| equip_id_num | 20_1 | 装备ID:20, 数量:1 |
|
||||
|
||||
## 跨项目复用
|
||||
## ConfigLinkData.json 格式
|
||||
|
||||
### 自动检测
|
||||
工具会自动检测目标项目中的配置表:
|
||||
- 检查 `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 = "关联说明"
|
||||
```json
|
||||
{
|
||||
"tables": [
|
||||
{
|
||||
"name": "item",
|
||||
"displayName": "道具表",
|
||||
"description": "道具基础配置",
|
||||
"fileExtension": ".xlsx",
|
||||
"relations": [
|
||||
{
|
||||
"field": "rewards",
|
||||
"target": "monster",
|
||||
"targetField": "id",
|
||||
"format": "type_id_num",
|
||||
"description": "掉落奖励"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 必填 | 说明 |
|
||||
|------|------|------|
|
||||
| name | 是 | 表名(对应 Excel 文件名,不含扩展名) |
|
||||
| displayName | 否 | 显示名称,不填则用 name |
|
||||
| description | 否 | 表描述 |
|
||||
| fileExtension | 否 | 文件扩展名,默认 `.xlsx`,可设为 `.txt` |
|
||||
| relations | 否 | 联动关系列表 |
|
||||
|
||||
**relations 字段:**
|
||||
|
||||
| 字段 | 必填 | 说明 |
|
||||
|------|------|------|
|
||||
| field | 是 | 当前表的字段名 |
|
||||
| target | 是 | 引用的目标表名 |
|
||||
| targetField | 否 | 目标表的字段名,默认 `id` |
|
||||
| format | 否 | 数据格式,如 `type_id_num` |
|
||||
| description | 否 | 关系描述 |
|
||||
|
||||
## 文件结构
|
||||
|
||||
```
|
||||
Assets/Editor/ConfigLinkViewer/
|
||||
├── ConfigLinkDatabase.cs # 配置表数据和联动关系存储
|
||||
├── ConfigLinkViewerWindow.cs # Unity编辑器窗口界面(含导出配置、清理空行功能)
|
||||
└── README.md # 使用文档
|
||||
├── ConfigLinkViewerWindow.cs # Unity 编辑器窗口界面 + 回调注册容器
|
||||
├── ConfigLinkDatabase.cs # 配置表数据、路径管理、格式模板(数据驱动)
|
||||
├── generate_config_link_data.py # Python 脚本,支持命令行参数,自动识别字段引用关系
|
||||
├── ConfigLinkData.json # 配置文件(生成骨架后由 AI 补全)
|
||||
├── settings.json # 项目路径 + 格式模板配置(零代码扩展)
|
||||
├── table_info.json # 配置表中文名/描述(Python 和 C# 共用)
|
||||
└── 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 源文件,建议操作前确认已提交到版本控制
|
||||
2. 路径设置后自动保存到 EditorUserSettings(多项目隔离,互不覆盖)
|
||||
3. 清理空行会直接修改 Excel 源文件,建议操作前确认已提交到版本控制
|
||||
4. 清理空行支持 Excel 共享字符串(sharedStrings)解析,可正确处理 `t="s"` 类型单元格
|
||||
5. 补全配置功能需要 Python 环境,脚本位于 `generate_config_link_data.py`
|
||||
6. 编辑 `ConfigLinkData.json` 后点击"刷新"按钮重新加载
|
||||
|
||||
## 更新日志
|
||||
|
||||
@@ -155,9 +157,57 @@ Assets/Editor/ConfigLinkViewer/
|
||||
- 左右面板自适应布局,窗口默认 900×600
|
||||
- 一键打开 Excel 文件,支持批量打开关联表
|
||||
- Excel 文件夹路径设置,自动保存到 PlayerPrefs
|
||||
- 跨项目适配,自动检测项目中存在的配置表
|
||||
- 跨项目适配,点击[生成配置]扫描 Excel 文件夹生成骨架,AI 补全中文名和关联关系
|
||||
- "导出配置"按钮,一键将 Excel 批量导出为 JSON 和 C# 代码
|
||||
- "清理Excel空行"功能,自动检测并删除 Excel 中 id 列为空的垃圾数据行,直接操作 xlsx 内部 XML,兼容性好
|
||||
- "清理Excel空行"功能,自动检测并删除 Excel 中 id 列为空的垃圾数据行
|
||||
- "AI补全配置"按钮,运行 Python 脚本自动识别字段引用关系
|
||||
|
||||
### v1.0.1
|
||||
- "AI补全配置"按钮更名为"补全配置",按钮宽度和提示文案同步调整
|
||||
- 修复清理 Excel 空行时未正确解析共享字符串(sharedStrings)导致部分空行清理不干净的问题
|
||||
- 新增 `t="s"`(共享字符串引用)和 `t="inlineStr"`(内联字符串)两种单元格类型解析
|
||||
- 提取 `GetCellActualValue()` 方法,统一单元格值解析逻辑
|
||||
- README 全面优化:精简功能特性描述、重组文档结构、新增查漏补缺指南和二次校验 Prompt
|
||||
|
||||
### v2.0.1
|
||||
|
||||
**UI 优化:**
|
||||
- 调整 ASCII 艺术画样式,支持自定义图案替换
|
||||
- 优化艺术画显示尺寸,支持更宽更矮的布局
|
||||
- 修复文字颜色显示问题,确保 ASCII 艺术画正确渲染
|
||||
|
||||
### v2.0.0 — 零依赖重构(大版本)
|
||||
|
||||
**核心目标:** 拖入任意 Unity 项目即用,零外部依赖,配置驱动。
|
||||
|
||||
**破坏性变更:**
|
||||
- 移除所有 `MFrame` 直接引用,编译不再依赖任何外部框架
|
||||
- Excel 路径存储从 `PlayerPrefs` 迁移至 `EditorUserSettings`(自动多项目隔离,旧路径需重新设置)
|
||||
- Python 脚本入口改为 `argparse` 参数化调用(`--config-dir` / `--output` / `--table-info`)
|
||||
|
||||
**新增文件:**
|
||||
- `settings.json` — 项目路径 + 格式模板配置,新增格式类型只需改 JSON,重启即生效
|
||||
- `table_info.json` — 78 张配置表的中文名/描述,Python 和 C# 共用同一份数据源
|
||||
|
||||
**UI 重构:**
|
||||
- 窗口拆分为「查看」和「配置」两个标签页,日常操作和初始化设置分离
|
||||
- 「查看」页顶部精简为 3 个按钮(清理Excel空行、导出配置、刷新),按钮大小和垂直对齐统一
|
||||
- 「配置」页集中展示路径设置、Excel 文件夹、配置数据生成(生成/补全)
|
||||
- 配置标签页底部展示洛天依 ASCII 彩蛋
|
||||
|
||||
**框架自动适配:**
|
||||
- 新增 `ConfigLinkViewerAutoSetup`(`[InitializeOnLoad]`),编辑器启动时通过**反射**自动检测项目中的 MFrame 框架
|
||||
- 检测到 `MFrame.ConfigDeal.ExportConfig` → 自动绑定「导出配置」回调
|
||||
- 检测到 `MFrame.PathConf` + `MFrame.ConfigEditorCf` → 自动绑定 Excel 路径回退
|
||||
- 未检测到框架 → 静默跳过,用户无需任何配置,路径通过 UI 手动设置即可
|
||||
|
||||
**改动详情:**
|
||||
- `ConfigLinkViewerCallbacks` 静态回调类保留,支持外部手动注册覆盖自动检测结果
|
||||
- `ConfigLinkDatabase.cs` — 格式解析从 switch-case 改为反射加载 `settings.json` 中的 `FormatTemplatesWrapper`,零代码扩展
|
||||
- `ConfigLinkDatabase.cs` — `MarkExistingTables` / `IsTableExistInConfigFolder` 的配置路径改为从 `settings.json` 的 `configFolderPath` 读取
|
||||
- `ConfigLinkViewerWindow.cs` — Python 调用侧同步传入 `--config-dir` 和 `--table-info` 参数
|
||||
- `generate_config_link_data.py` — 移除硬编码 `TABLE_INFO` 字典,改为从 `table_info.json` 加载
|
||||
- 清理 `__pycache__/` 缓存目录和已完成的优化方案文档
|
||||
|
||||
## 许可证
|
||||
|
||||
|
||||
Reference in New Issue
Block a user