| | |
| | | public override void Init()
|
| | | {
|
| | | base.Init();
|
| | | InitConfigs();
|
| | | InitConfigs().Forget();
|
| | | }
|
| | |
|
| | | public virtual async UniTask InitConfigs()
|
| | |
| | | {
|
| | | configName = configName.Substring(0, configName.Length - 6);
|
| | | }
|
| | | #pragma warning disable CS0618 // Obsolete — sync legacy fallback, use LoadConfigByTypeAsync
|
| | | string[] texts = ResManager.Instance.LoadConfig(configName);
|
| | | #pragma warning restore CS0618
|
| | | if (texts != null)
|
| | | {
|
| | | string[] lines = texts;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// US2: Async variant of LoadConfigByType. Uses UniTask-based config loading.
|
| | | /// </summary>
|
| | | public async UniTask LoadConfigByTypeAsync(Type configType)
|
| | | {
|
| | | string configName = configType.Name;
|
| | | if (configName.EndsWith("Config"))
|
| | | {
|
| | | configName = configName.Substring(0, configName.Length - 6);
|
| | | }
|
| | | string[] texts = await ResManager.Instance.LoadConfigAsync(configName);
|
| | | if (texts != null)
|
| | | {
|
| | | var methodInfo = configType.GetMethod("Init", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.FlattenHierarchy);
|
| | | if (methodInfo != null)
|
| | | {
|
| | | methodInfo.Invoke(null, new object[] { texts });
|
| | | var isInitField = configType.GetField("isInit", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
|
| | | if (isInitField != null)
|
| | | {
|
| | | isInitField.SetValue(null, true);
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | Debug.LogError($"配置类 {configType.Name} 没有静态Init方法");
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | Debug.LogError($"找不到配置文件: {configName}");
|
| | | }
|
| | | }
|
| | |
|
| | | private async UniTask LoadConfig<T>() where T : class
|
| | | {
|
| | | string configName = typeof(T).Name;
|
| | |
|
| | | #pragma warning disable CS0618
|
| | | string[] texts = ResManager.Instance.LoadConfig(configName);
|
| | | #pragma warning restore CS0618
|
| | | if (texts != null)
|
| | | {
|
| | | string[] lines = texts;
|
| | |
| | | if (configName.EndsWith("Config"))
|
| | | configName = configName.Substring(0, configName.Length - 6);
|
| | |
|
| | | #pragma warning disable CS0618
|
| | | string[] texts = ResManager.Instance.LoadConfig(configName);
|
| | | #pragma warning restore CS0618
|
| | | if (texts != null)
|
| | | {
|
| | | string[] lines = texts;
|