NLDClient-yudde/.kiro/skills/luban-config/SKILL.md

84 lines
3.4 KiB
Markdown
Raw Normal View History

---
name: luban-config
2026-05-08 13:25:20 +08:00
description: Luban 配置表操作生成代码、修改配置、校验数据。涉及配置表Excel/XML和 Luban 工具链的操作。触发关键词:配置表 config table、Luban 导出 export、Excel 数据、Root.xml、GenCode、LubanExportConfig、数值配置、新增配置表、配置校验。
version: "1.0"
updated: "2026-05-08"
---
# Luban 配置表操作
操作游戏配置表系统,基于 Luban 工具链。
## 前置知识
- **Luban 工具位置**: `Assets/PhxhSDK/Phxh/ThirdParty/Luban/`
- **导出配置**: `Assets/PhxhSDK/Editor/Settings/Luban_*.asset`Client_CN/Client_EN/Server
- **生成代码**: `Assets/Code/Scripts/GenCode/Luban/`Luban 生成的 C# 代码)
2026-05-08 13:41:29 +08:00
- **配置表源文件**: 位于 NLDMisc 仓库(`../../../NLDMisc`),通常为 Excel 格式
- **NLDMisc 典型结构**: `NLDMisc/Data/` 下按功能模块分目录存放 Excel 文件
- **Editor 脚本**: `Assets/PhxhSDK/Phxh/ThirdParty/Luban/Editor/LubanExportConfig.cs`
2026-05-08 13:41:29 +08:00
- **Root.xml 定义**: 在 NLDMisc 仓库中,注册所有表的字段和类型定义
## 配置表导出配置说明
Luban 使用 `LubanExportConfig` (ScriptableObject) 管理导出参数:
- `which_dll`: 数据校验 DLLClient&Server 共用)
- `define_xml`: Root.xml 定义文件
- `service`: 生成目标server / client
- `-t`: 生成类型参数
- `-c`: 其他命令行参数
- `before_gen` / `after_gen`: 生命周期回调脚本
配置文件路径模式:
```
Assets/PhxhSDK/Editor/Settings/Luban_Client_CN.asset # 客户端中文
Assets/PhxhSDK/Editor/Settings/Luban_Client_EN.asset # 客户端英文
Assets/PhxhSDK/Editor/Settings/Luban_Server.asset # 服务端
```
## 不适用场景
- 只修改了游戏逻辑代码(不涉及配置表)→ 不需要走 Luban 流程
- 只查配置表字段结构 → 直接看 `Assets/Code/Scripts/GenCode/Luban/` 中的生成代码即可
## 工作流
### 1. 修改配置表
当需要修改游戏配置参数时:
1. **定位配置表**: 根据功能需求找到对应的 Excel/CSV 配置文件
2. **理解字段含义**: 查看 `Assets/Code/Scripts/GenCode/Luban/` 中生成的 C# 类了解字段结构
3. **修改数据**: 编辑配置表文件中的具体数值
4. **重新导出**: 提示用户在 Unity Editor 中执行 Luban 导出(菜单路径: `Luban/Export``Phxh/Luban/Export`
### 2. 新增配置表
1.`Root.xml` 中注册新表定义
2. 创建 Excel 源文件
3. 执行 Luban 导出生成 C# 代码
4. 验证生成的代码在 `Assets/Code/Scripts/GenCode/Luban/`
### 3. 配置校验
- 导出过程中 Luban 会自动根据 `which_dll` 指定的校验 DLL 进行数据校验
- 校验失败会在 Unity Console 输出错误信息
- 常见校验错误:字段类型不匹配、引用 ID 不存在、必填字段为空
## 生成代码规范
Luban 生成的代码位于 `Assets/Code/Scripts/GenCode/Luban/`
- 每个配置表对应一个 C# 类
- 类名通常与配置表名一致
- 包含字段属性、索引查找方法、验证逻辑
- **不要手动修改生成代码**(重新导出会覆盖)
## 安全规则
- 修改配置表前确认当前编辑的是正确的 targetClient/Server
- 导出前备份重要配置数据
- 配置表变更通常涉及三仓NLDClient + NLDMisc需走 batch-git-ops 流程
- 多语言配置需同步更新 CN/EN 两个版本
- 新增字段需同步更新服务端和客户端的 Root.xml 定义