From f4a702e212d1853735f8dae399da69d23bfa510e Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 18:16:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version

---
 Main/Config/ConfigManager.cs |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 118 insertions(+), 0 deletions(-)

diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index 364bfb3..049c450 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -55,7 +55,13 @@
         // 鑷姩鐢熸垚锛氭敹闆嗘墍鏈夐厤缃被鍨�
         // 鑷姩鐢熸垚锛氭敹闆嗘墍鏈夐厤缃被鍨�
         HashSet<Type> configTypes = new HashSet<Type>() {
+            typeof(ActBillboardAwardConfig),
+            typeof(ActHeroAppearArtConfig),
+            typeof(ActHeroAppearConfig),
+            typeof(ActHeroAppearSkinArtConfig),
+            typeof(ActHeroAppearStarConfig),
             typeof(ActLunhuidianTypeConfig),
+            typeof(ActSignAwardConfig),
             typeof(ADAwardConfig),
             typeof(AppointItemConfig),
             typeof(AudioConfig),
@@ -114,6 +120,7 @@
             typeof(HeroQualityBreakConfig),
             typeof(HeroQualityConfig),
             typeof(HeroQualityLVConfig),
+            typeof(HeroSkinAttrConfig),
             typeof(HeroSkinConfig),
             typeof(HeroTalentConfig),
             typeof(HorseClassConfig),
@@ -143,6 +150,7 @@
             typeof(PlayerFacePicConfig),
             typeof(PlayerLVConfig),
             typeof(PlayerPropertyConfig),
+            typeof(PopWinOrderConfig),
             typeof(PresetUnlockConfig),
             typeof(PriorBundleConfig),
             typeof(RandomNameConfig),
@@ -379,8 +387,20 @@
 
     public override void Release()
     {
+        // 娓呯┖ ActBillboardAwardConfig 瀛楀吀
+        ClearConfigDictionary<ActBillboardAwardConfig>();
+        // 娓呯┖ ActHeroAppearArtConfig 瀛楀吀
+        ClearConfigDictionary<ActHeroAppearArtConfig>();
+        // 娓呯┖ ActHeroAppearConfig 瀛楀吀
+        ClearConfigDictionary<ActHeroAppearConfig>();
+        // 娓呯┖ ActHeroAppearSkinArtConfig 瀛楀吀
+        ClearConfigDictionary<ActHeroAppearSkinArtConfig>();
+        // 娓呯┖ ActHeroAppearStarConfig 瀛楀吀
+        ClearConfigDictionary<ActHeroAppearStarConfig>();
         // 娓呯┖ ActLunhuidianTypeConfig 瀛楀吀
         ClearConfigDictionary<ActLunhuidianTypeConfig>();
+        // 娓呯┖ ActSignAwardConfig 瀛楀吀
+        ClearConfigDictionary<ActSignAwardConfig>();
         // 娓呯┖ ADAwardConfig 瀛楀吀
         ClearConfigDictionary<ADAwardConfig>();
         // 娓呯┖ BattleMapConfig 瀛楀吀
@@ -445,6 +465,8 @@
         ClearConfigDictionary<HeroLineupHaloConfig>();
         // 娓呯┖ HeroQualityLVConfig 瀛楀吀
         ClearConfigDictionary<HeroQualityLVConfig>();
+        // 娓呯┖ HeroSkinAttrConfig 瀛楀吀
+        ClearConfigDictionary<HeroSkinAttrConfig>();
         // 娓呯┖ HorseClassConfig 瀛楀吀
         ClearConfigDictionary<HorseClassConfig>();
         // 娓呯┖ HorseSkinConfig 瀛楀吀
@@ -485,6 +507,8 @@
         ClearConfigDictionary<PlayerAttrConfig>();
         // 娓呯┖ PlayerFaceConfig 瀛楀吀
         ClearConfigDictionary<PlayerFaceConfig>();
+        // 娓呯┖ PopWinOrderConfig 瀛楀吀
+        ClearConfigDictionary<PopWinOrderConfig>();
         // 娓呯┖ PresetUnlockConfig 瀛楀吀
         ClearConfigDictionary<PresetUnlockConfig>();
         // 娓呯┖ PriorBundleConfig 瀛楀吀
@@ -532,10 +556,104 @@
     /// </summary>
     private async UniTask<string[]> LoadConfigTextAsync(Type configType)
     {
+<<<<<<< HEAD
         string configName = configType.Name;
         if (configName.EndsWith("Config"))
             configName = configName.Substring(0, configName.Length - 6);
         return await ResManager.Instance.LoadConfigAsync(configName);
+=======
+        // 鑾峰彇 Editor Assembly
+        var editorAsm = System.AppDomain.CurrentDomain.GetAssemblies()
+            .FirstOrDefault(a => a.FullName.Contains("Editor"));
+
+        if (editorAsm == null)
+        {
+            Debug.LogError("[鑷] 鏈壘鍒� Editor Assembly锛屾棤娉曡嚜妫�銆�");
+            return;
+        }
+
+        // 鍙嶅皠鑾峰彇 ConfigGenerater 绫诲瀷
+        var configGeneraterType = editorAsm.GetType("ConfigGenerater");
+        if (configGeneraterType == null)
+        {
+            Debug.LogError("[鑷] 鏈壘鍒� ConfigGenerater 绫诲瀷銆�");
+            return;
+        }
+
+        // 璋冪敤 GetAllConfigClasses 闈欐�佹柟娉�
+        var getAllConfigClassesMethod = configGeneraterType.GetMethod("GetAllConfigClasses", BindingFlags.Public | BindingFlags.Static);
+        var allConfigClasses = getAllConfigClassesMethod?.Invoke(null, null) as List<string>;
+        if (allConfigClasses == null)
+        {
+            Debug.LogError("[鑷] 鑾峰彇鍏ㄩ儴閰嶇疆绫诲け璐ャ��");
+            return;
+        }
+
+        // 鑾峰彇 ExcludeClassList 瀛楁
+        var excludeField = configGeneraterType.GetField("ExcludeClassList", BindingFlags.Public | BindingFlags.Static);
+        var excludeClassList = excludeField?.GetValue(null) as List<string> ?? new List<string>();
+
+        // 鎺掗櫎涓嶉渶瑕佺殑绫�
+        var checkClasses = allConfigClasses.Where(c => !excludeClassList.Contains(c)).ToList();
+
+        List<string> fastName = new List<string>();
+
+        foreach (var className in checkClasses)
+        {
+            // 杩欓噷涔熻鐢� Editor Assembly 鑾峰彇绫诲瀷
+            var configType = editorAsm.GetType(className) ?? Type.GetType(className);
+            if (configType == null)
+            {
+                Debug.LogWarning($"[鑷] 鏈壘鍒扮被鍨�: {className}");
+                continue;
+            }
+
+            var sw = System.Diagnostics.Stopwatch.StartNew();
+
+            // 鍙嶅皠璋冪敤闈欐�両nit鏂规硶
+            string configName = configType.Name;
+            if (configName.EndsWith("Config"))
+                configName = configName.Substring(0, configName.Length - 6);
+
+            string[] texts = ResManager.Instance.LoadConfig(configName);
+            if (texts != null)
+            {
+                string[] lines = texts;
+                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[] { lines });
+                }
+            }
+
+            sw.Stop();
+
+            if (sw.ElapsedMilliseconds >= 500)
+            {
+                Debug.LogError($"[鑷] 鍔犺浇閰嶇疆 {configType.Name} 鑰楁椂杈冮暱: {sw.ElapsedMilliseconds} ms");
+            }
+            else if (sw.ElapsedMilliseconds <= 5)
+            {
+                fastName.Add(configType.Name);
+            }
+            Debug.Log($"[鑷] 鍔犺浇閰嶇疆: {configType.Name} 鐢ㄦ椂: {sw.ElapsedMilliseconds} ms");
+        }
+
+        // 閲婃斁鎵�鏈夊凡鍔犺浇鐨勯厤缃�
+        foreach (var className in checkClasses)
+        {
+            var configType = editorAsm.GetType(className) ?? Type.GetType(className);
+            if (configType == null) continue;
+            var methodInfo = configType.GetMethod("ForceRelease", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.FlattenHierarchy);
+            if (methodInfo != null)
+            {
+                methodInfo.Invoke(null, null);
+            }
+        }
+
+        System.IO.File.WriteAllText(Application.dataPath + "/fastConfig.txt", string.Join("\n", fastName));
+        Debug.Log($"[鑷] fastConfig.txt 鐢熸垚瀹屾瘯锛屽揩閫熻〃鏈夛細{string.Join(", ", fastName)}");
+>>>>>>> origin/master
     }
 
     /// <summary>

--
Gitblit v1.8.0