71 lines
2.2 KiB
Markdown
71 lines
2.2 KiB
Markdown
# ⚙️ ConfigLoader 配置加载模块
|
|
|
|
此模块负责配置文件的加载与检测,依赖于 `Common` 通用模块,请确保已安装该模块。
|
|
|
|
### 主要功能
|
|
|
|
- 📂 配置文件加载
|
|
- 🔍 配置字段缺失检测
|
|
- ❌ 配置字段冗余检测
|
|
- ⚙️ 自动化插件安装
|
|
- 📝 日志标准化输出
|
|
|
|
------
|
|
|
|
## ⚠️ 注意事项
|
|
|
|
导入项目后,会弹出插件安装提示框。点击“确定”后,插件将自动安装;若点击“取消”,脚本重新编译时仍会再次弹出提示。
|
|
|
|
- 插件安装需要一定时间,请耐心等待。安装完成后会有弹窗提示。
|
|
- 安装完成后,会自动生成配置文件夹 `Configs`,请将游戏配置文件复制到此文件夹中。
|
|
- **请勿修改配置文件名**。如需替换配置文件,请先删除旧文件,确保文件夹中每个配置只有一份。
|
|
- 游戏首次运行时,会自动将该文件夹复制到游戏的数据存储位置。
|
|
|
|
------
|
|
|
|
## 🚀 使用指南
|
|
|
|
在登录成功后,调用 `ConfigLoader` 的 `Init` 方法传入所需参数,具体参数请查看方法注释。
|
|
|
|
> 注意:
|
|
>
|
|
> - **List 类型**的配置需继承 `ConfigModel<T, T0>`,不再需要之前的 `IDataList` 接口。
|
|
> - **非 List 类型**配置继承 `ConfigModel<T>`。
|
|
|
|
### 初始化示例
|
|
|
|
```csharp
|
|
var loginModel = NetworkKit.Instance.GetLoginModel();
|
|
ConfigLoader.Instance.Init(
|
|
loginModel.setting,
|
|
loginModel.cdn_url,
|
|
new List<ConfigModel> {
|
|
new CommonModel("Common"),
|
|
new SignDailyRewardModel("SignDailyReward"),
|
|
new TurntableModel("turntable"),
|
|
// 其它配置...
|
|
},
|
|
state => {
|
|
Debug.Log($"配置加载状态: {state}");
|
|
},
|
|
(errorName, message) => {
|
|
Debug.LogError($"配置解析错误: {errorName},错误信息:{message}");
|
|
});
|
|
```
|
|
|
|
------
|
|
|
|
## 🔍 读取配置示例
|
|
|
|
```csharp
|
|
// 读取基础配置
|
|
var model = ConfigLoader.Instance.GetConfig<CommonModel>();
|
|
|
|
// 解析自定义配置
|
|
ConfigLoader.Instance.ParesPersonalizedConfig(new PrizeWheelDataModel("PrizeWheelData"), "prize");
|
|
|
|
// 获取自定义配置
|
|
var personalizedConfig = ConfigLoader.Instance.GetPersonalizedConfig<PrizeWheelDataModel>("prize");
|
|
```
|
|
|