| | |
| | | private set;
|
| | | }
|
| | |
|
| | | private float loadingProgress = 0f;
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | | base.Init();
|
| | | InitConfigs();
|
| | | }
|
| | |
|
| | | public virtual async UniTask InitConfigs()
|
| | | {
|
| | | // 加载配置文件
|
| | |
| | |
|
| | | protected async UniTask LoadConfigs()
|
| | | {
|
| | | loadingProgress = 0f;
|
| | | isLoadFinished = false;
|
| | |
|
| | | // 加载配置文件
|
| | |
|
| | | // 加载完成后设置isLoadFinished为true
|
| | | loadingProgress = 1f;
|
| | | isLoadFinished = true;
|
| | | }
|
| | |
|
| | | private async UniTask LoadConfigByType(Type configType)
|
| | | {
|
| | | string configName = configType.Name;
|
| | | TextAsset textAsset = await ResManager.Instance.LoadAsset<TextAsset>("Config", configName);
|
| | | if (textAsset != null)
|
| | | {
|
| | | string[] lines = textAsset.text.Split('\n');
|
| | | var methodInfo = configType.GetMethod("Init", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
|
| | | if (methodInfo != null)
|
| | | {
|
| | | methodInfo.Invoke(null, new object[] { lines });
|
| | | // 设置初始化标志
|
| | | var isInitField = configType.GetField("isInit", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
|
| | | if (isInitField != null)
|
| | | {
|
| | | isInitField.SetValue(null, true);
|
| | | }
|
| | | Debug.Log($"加载配置: {configType.Name} 成功");
|
| | | }
|
| | | else
|
| | | {
|
| | | Debug.LogError($"配置类 {configType.Name} 没有静态Init方法");
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | Debug.LogError($"找不到配置文件: {configName}");
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | public float GetLoadingProgress()
|
| | | {
|
| | | return loadingProgress;
|
| | | }
|
| | |
|
| | | private void ClearConfigDictionary<T>() where T : class
|
| | | {
|
| | | // 重置 T 初始化状态
|
| | |
| | |
|
| | | public override void Release()
|
| | | {
|
| | | // 没有找到配置类
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | } |