From 1ad03cc2f91d75e80fc3dc42e2ac1fadc9a2bfec Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 16:10:43 +0800
Subject: [PATCH] Merge branch 'master' into h5version

---
 Main/Config/ConfigManager.cs |  188 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 180 insertions(+), 8 deletions(-)

diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index 3c07753..e673ab1 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -22,7 +22,7 @@
     public override void Init()
     {
         base.Init();
-        InitConfigs();
+        InitConfigs().Forget();
     }
 
     public virtual async UniTask InitConfigs()
@@ -38,33 +38,77 @@
 
         // 鍔犺浇閰嶇疆鏂囦欢
         HashSet<Type> configTypes = new HashSet<Type>() {
+            typeof(ADAwardConfig),
+            typeof(BattleMapConfig),
+            typeof(BeautyConfig),
+            typeof(BeautyQualityLVConfig),
+            typeof(BeautySkinConfig),
             typeof(ChestsAwardConfig),
             typeof(CTGConfig),
+            typeof(DailyTaskConfig),
             typeof(DamageNumConfig),
             typeof(DirtyWordConfig),
+            typeof(DungeonConfig),
+            typeof(DungeonOpenTimeConfig),
             typeof(FaceConfig),
+            typeof(FamilyDonateConfig),
+            typeof(FBDJGEffectConfig),
+            typeof(FBDJGLevelConfig),
+            typeof(FBDJGQuickConfig),
             typeof(FightPowerRatioConfig),
+            typeof(FirstChargeConfig),
+            typeof(GoldRushCampConfig),
+            typeof(GoldRushItemConfig),
+            typeof(GoldRushWorkerConfig),
+            typeof(GubaoConfig),
+            typeof(GubaoLVAttrConfig),
+            typeof(GubaoLVConfig),
+            typeof(GubaoResonanceAttrConfig),
+            typeof(GubaoResonanceConfig),
+            typeof(GubaoStarConfig),
+            typeof(HeroFatesConfig),
+            typeof(HeroFatesQualityLVConfig),
             typeof(HeroLineupHaloConfig),
             typeof(HeroQualityLVConfig),
-            typeof(InvestConfig),
+            typeof(HorseClassConfig),
+            typeof(HorseSkinConfig),
+            typeof(ItemCompoundConfig),
             typeof(ItemConfig),
+            typeof(LineupRecommendConfig),
+            typeof(LLMJConfig),
             typeof(MainChapterConfig),
             typeof(MainLevelConfig),
+            typeof(MGGanwuLVConfig),
+            typeof(MGGuayuQualityConfig),
+            typeof(MGGuayuTypeConfig),
+            typeof(MGLingyingQualityConfig),
+            typeof(ModelConfig),
             typeof(NPCConfig),
             typeof(NPCExConfig),
             typeof(NPCLineupConfig),
+            typeof(OPConfigConfig),
             typeof(OrderInfoConfig),
             typeof(PlayerAttrConfig),
             typeof(PlayerFaceConfig),
-            typeof(PriorBundleConfig),
+            typeof(PresetUnlockConfig),
+            typeof(RandomNameConfig),
+            typeof(SignInConfig),
+            typeof(SkillSkinConfig),
             typeof(StoreConfig),
             typeof(SuccessConfig),
             typeof(SysInfoConfig),
+            typeof(TianziConfig),
+            typeof(TimingGiftConfig),
+            typeof(TimingGiftTypeConfig),
+            typeof(TitleConfig),
             typeof(TitleStarUpConfig),
+            typeof(TravelEventConfig),
+            typeof(TravelSceneryConfig),
             typeof(TreasureSetConfig),
             typeof(TreeLVConfig),
             typeof(WindowSearchConfig),
-            typeof(XBGetItemConfig)
+            typeof(XBGetItemConfig),
+            typeof(ZhanlingConfig)
         };
 
 #if UNITY_EDITOR
@@ -139,7 +183,9 @@
         {
             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;
@@ -166,11 +212,47 @@
         }
     }
 
+    /// <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} 娌℃湁闈欐�両nit鏂规硶");
+            }
+        }
+        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;
@@ -214,52 +296,138 @@
 
     public override void Release()
     {
+        // 娓呯┖ ADAwardConfig 瀛楀吀
+        ClearConfigDictionary<ADAwardConfig>();
+        // 娓呯┖ BattleMapConfig 瀛楀吀
+        ClearConfigDictionary<BattleMapConfig>();
+        // 娓呯┖ BeautyConfig 瀛楀吀
+        ClearConfigDictionary<BeautyConfig>();
+        // 娓呯┖ BeautyQualityLVConfig 瀛楀吀
+        ClearConfigDictionary<BeautyQualityLVConfig>();
+        // 娓呯┖ BeautySkinConfig 瀛楀吀
+        ClearConfigDictionary<BeautySkinConfig>();
         // 娓呯┖ ChestsAwardConfig 瀛楀吀
         ClearConfigDictionary<ChestsAwardConfig>();
         // 娓呯┖ CTGConfig 瀛楀吀
         ClearConfigDictionary<CTGConfig>();
+        // 娓呯┖ DailyTaskConfig 瀛楀吀
+        ClearConfigDictionary<DailyTaskConfig>();
         // 娓呯┖ DamageNumConfig 瀛楀吀
         ClearConfigDictionary<DamageNumConfig>();
         // 娓呯┖ DirtyWordConfig 瀛楀吀
         ClearConfigDictionary<DirtyWordConfig>();
+        // 娓呯┖ DungeonConfig 瀛楀吀
+        ClearConfigDictionary<DungeonConfig>();
+        // 娓呯┖ DungeonOpenTimeConfig 瀛楀吀
+        ClearConfigDictionary<DungeonOpenTimeConfig>();
         // 娓呯┖ FaceConfig 瀛楀吀
         ClearConfigDictionary<FaceConfig>();
+        // 娓呯┖ FamilyDonateConfig 瀛楀吀
+        ClearConfigDictionary<FamilyDonateConfig>();
+        // 娓呯┖ FBDJGEffectConfig 瀛楀吀
+        ClearConfigDictionary<FBDJGEffectConfig>();
+        // 娓呯┖ FBDJGLevelConfig 瀛楀吀
+        ClearConfigDictionary<FBDJGLevelConfig>();
+        // 娓呯┖ FBDJGQuickConfig 瀛楀吀
+        ClearConfigDictionary<FBDJGQuickConfig>();
         // 娓呯┖ FightPowerRatioConfig 瀛楀吀
         ClearConfigDictionary<FightPowerRatioConfig>();
+        // 娓呯┖ FirstChargeConfig 瀛楀吀
+        ClearConfigDictionary<FirstChargeConfig>();
+        // 娓呯┖ GoldRushCampConfig 瀛楀吀
+        ClearConfigDictionary<GoldRushCampConfig>();
+        // 娓呯┖ GoldRushItemConfig 瀛楀吀
+        ClearConfigDictionary<GoldRushItemConfig>();
+        // 娓呯┖ GoldRushWorkerConfig 瀛楀吀
+        ClearConfigDictionary<GoldRushWorkerConfig>();
+        // 娓呯┖ GubaoConfig 瀛楀吀
+        ClearConfigDictionary<GubaoConfig>();
+        // 娓呯┖ GubaoLVAttrConfig 瀛楀吀
+        ClearConfigDictionary<GubaoLVAttrConfig>();
+        // 娓呯┖ GubaoLVConfig 瀛楀吀
+        ClearConfigDictionary<GubaoLVConfig>();
+        // 娓呯┖ GubaoResonanceAttrConfig 瀛楀吀
+        ClearConfigDictionary<GubaoResonanceAttrConfig>();
+        // 娓呯┖ GubaoResonanceConfig 瀛楀吀
+        ClearConfigDictionary<GubaoResonanceConfig>();
+        // 娓呯┖ GubaoStarConfig 瀛楀吀
+        ClearConfigDictionary<GubaoStarConfig>();
+        // 娓呯┖ HeroFatesConfig 瀛楀吀
+        ClearConfigDictionary<HeroFatesConfig>();
+        // 娓呯┖ HeroFatesQualityLVConfig 瀛楀吀
+        ClearConfigDictionary<HeroFatesQualityLVConfig>();
         // 娓呯┖ HeroLineupHaloConfig 瀛楀吀
         ClearConfigDictionary<HeroLineupHaloConfig>();
         // 娓呯┖ HeroQualityLVConfig 瀛楀吀
         ClearConfigDictionary<HeroQualityLVConfig>();
-        // 娓呯┖ InvestConfig 瀛楀吀
-        ClearConfigDictionary<InvestConfig>();
+        // 娓呯┖ HorseClassConfig 瀛楀吀
+        ClearConfigDictionary<HorseClassConfig>();
+        // 娓呯┖ HorseSkinConfig 瀛楀吀
+        ClearConfigDictionary<HorseSkinConfig>();
+        // 娓呯┖ ItemCompoundConfig 瀛楀吀
+        ClearConfigDictionary<ItemCompoundConfig>();
         // 娓呯┖ ItemConfig 瀛楀吀
         ClearConfigDictionary<ItemConfig>();
+        // 娓呯┖ LineupRecommendConfig 瀛楀吀
+        ClearConfigDictionary<LineupRecommendConfig>();
+        // 娓呯┖ LLMJConfig 瀛楀吀
+        ClearConfigDictionary<LLMJConfig>();
         // 娓呯┖ MainChapterConfig 瀛楀吀
         ClearConfigDictionary<MainChapterConfig>();
         // 娓呯┖ MainLevelConfig 瀛楀吀
         ClearConfigDictionary<MainLevelConfig>();
+        // 娓呯┖ MGGanwuLVConfig 瀛楀吀
+        ClearConfigDictionary<MGGanwuLVConfig>();
+        // 娓呯┖ MGGuayuQualityConfig 瀛楀吀
+        ClearConfigDictionary<MGGuayuQualityConfig>();
+        // 娓呯┖ MGGuayuTypeConfig 瀛楀吀
+        ClearConfigDictionary<MGGuayuTypeConfig>();
+        // 娓呯┖ MGLingyingQualityConfig 瀛楀吀
+        ClearConfigDictionary<MGLingyingQualityConfig>();
+        // 娓呯┖ ModelConfig 瀛楀吀
+        ClearConfigDictionary<ModelConfig>();
         // 娓呯┖ NPCConfig 瀛楀吀
         ClearConfigDictionary<NPCConfig>();
         // 娓呯┖ NPCExConfig 瀛楀吀
         ClearConfigDictionary<NPCExConfig>();
         // 娓呯┖ NPCLineupConfig 瀛楀吀
         ClearConfigDictionary<NPCLineupConfig>();
+        // 娓呯┖ OPConfigConfig 瀛楀吀
+        ClearConfigDictionary<OPConfigConfig>();
         // 娓呯┖ OrderInfoConfig 瀛楀吀
         ClearConfigDictionary<OrderInfoConfig>();
         // 娓呯┖ PlayerAttrConfig 瀛楀吀
         ClearConfigDictionary<PlayerAttrConfig>();
         // 娓呯┖ PlayerFaceConfig 瀛楀吀
         ClearConfigDictionary<PlayerFaceConfig>();
-        // 娓呯┖ PriorBundleConfig 瀛楀吀
-        ClearConfigDictionary<PriorBundleConfig>();
+        // 娓呯┖ PresetUnlockConfig 瀛楀吀
+        ClearConfigDictionary<PresetUnlockConfig>();
+        // 娓呯┖ RandomNameConfig 瀛楀吀
+        ClearConfigDictionary<RandomNameConfig>();
+        // 娓呯┖ SignInConfig 瀛楀吀
+        ClearConfigDictionary<SignInConfig>();
+        // 娓呯┖ SkillSkinConfig 瀛楀吀
+        ClearConfigDictionary<SkillSkinConfig>();
         // 娓呯┖ StoreConfig 瀛楀吀
         ClearConfigDictionary<StoreConfig>();
         // 娓呯┖ SuccessConfig 瀛楀吀
         ClearConfigDictionary<SuccessConfig>();
         // 娓呯┖ SysInfoConfig 瀛楀吀
         ClearConfigDictionary<SysInfoConfig>();
+        // 娓呯┖ TianziConfig 瀛楀吀
+        ClearConfigDictionary<TianziConfig>();
+        // 娓呯┖ TimingGiftConfig 瀛楀吀
+        ClearConfigDictionary<TimingGiftConfig>();
+        // 娓呯┖ TimingGiftTypeConfig 瀛楀吀
+        ClearConfigDictionary<TimingGiftTypeConfig>();
+        // 娓呯┖ TitleConfig 瀛楀吀
+        ClearConfigDictionary<TitleConfig>();
         // 娓呯┖ TitleStarUpConfig 瀛楀吀
         ClearConfigDictionary<TitleStarUpConfig>();
+        // 娓呯┖ TravelEventConfig 瀛楀吀
+        ClearConfigDictionary<TravelEventConfig>();
+        // 娓呯┖ TravelSceneryConfig 瀛楀吀
+        ClearConfigDictionary<TravelSceneryConfig>();
         // 娓呯┖ TreasureSetConfig 瀛楀吀
         ClearConfigDictionary<TreasureSetConfig>();
         // 娓呯┖ TreeLVConfig 瀛楀吀
@@ -268,6 +436,8 @@
         ClearConfigDictionary<WindowSearchConfig>();
         // 娓呯┖ XBGetItemConfig 瀛楀吀
         ClearConfigDictionary<XBGetItemConfig>();
+        // 娓呯┖ ZhanlingConfig 瀛楀吀
+        ClearConfigDictionary<ZhanlingConfig>();
     }
 
 #if UNITY_EDITOR
@@ -327,7 +497,9 @@
             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;

--
Gitblit v1.8.0