配置系统 private
配置系统
回答“Excel 如何生成代码和数据、运行时从哪里加载、改表不生效时查什么”。
9. 配置系统
flowchart LR
A[策划 Excel] --> B[ConfigOption / Config_tool]
B --> C[Cfg*.cs]
B --> D[客户端 bytes / 服务端 CSV]
C --> E[客户端编译]
D --> F[Resources_moved/Database]
D --> G[服务端 Configs]
E --> H[ConfigManager]
F --> H
G --> I[ConfigTable]
客户端菜单:
Starlit/ConfigOption/GenerateAll...:选择 Excel 根目录和语言。Starlit/ConfigOption/GenerateAll2Game:从ConfigRootDir顶层批量读取 xlsx。
生成器先写 GenDatabase,再把代码复制到 Assets/Code/Core/Database/Class,数据复制到
Assets/Resources_moved/Database,成功后删除临时目录。Cfg*.cs 是自动生成文件,扩展逻辑放在 Cfg*Ex.cs partial 类中。
ConfigManager.Initialize() 注册类型,并用 batchLoad 区分首批与按需加载。LoadAllConfig() 并行调用首批类型的静态 Load;生成类用 BinaryReader/MessageSerializer 反序列化到静态索引。
加载路径优先级:
Application.persistentDataPath/StreamingAssets/Database,下载或热更配置。Application.dataPath/Resources_moved/Database,包内后备。
改了工程 bytes 但不生效时,先检查 persistentDataPath 是否有旧覆盖文件。
正确改表流程:改源 Excel -> 保持 Key/类型正确 -> 运行生成器 -> 检查代码与数据产物 -> 同步服务端 -> 处理本地旧热更文件 -> 双端验证。