From a277a317c827163c595ec1b21247dc820a1a0ff0 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 02 七月 2025 20:23:29 +0800
Subject: [PATCH] 0312 排行榜

---
 Main/Config/ConfigManager.cs |  463 +++++++++++++++++++++++++--------------------------------
 1 files changed, 205 insertions(+), 258 deletions(-)

diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index bbed737..6057f84 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -1,258 +1,205 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-using Cysharp.Threading.Tasks;
-using System.Reflection;
-
-
-public class ConfigManager : ManagerBase<ConfigManager>
-{
-    public bool isLoadFinished
-    {
-        get;
-        private set;
-    }
-
-    private float loadingProgress = 0f;
-
-    public override void Init()
-    {
-        base.Init();
-        InitConfigs();
-    }
-
-    public virtual async UniTask InitConfigs()
-    {
-        // 鍔犺浇閰嶇疆鏂囦欢
-        await LoadConfigs();
-    }
-
-    protected async UniTask LoadConfigs()
-    {
-        loadingProgress = 0f;
-        isLoadFinished = false;
-
-        // 鍔犺浇閰嶇疆鏂囦欢
-        int totalConfigs = 41;
-        Type[] configTypes = new Type[] {
-            typeof(AppointItemConfig),
-            typeof(AudioConfig),
-            typeof(ChestsAwardConfig),
-            typeof(ChestsConfig),
-            typeof(CTGConfig),
-            typeof(CTGSelectItemConfig),
-            typeof(DienstgradConfig),
-            typeof(DirtyWordConfig),
-            typeof(EffectConfig),
-            typeof(EmojiPackConfig),
-            typeof(FaceConfig),
-            typeof(FamilyConfig),
-            typeof(FuncConfigConfig),
-            typeof(FuncOpenLVConfig),
-            typeof(FunctionTeamSetConfig),
-            typeof(GetItemWaysConfig),
-            typeof(GmCmdConfig),
-            typeof(GuideConfig),
-            typeof(IconConfig),
-            //typeof(InitialFunctionConfig),
-            typeof(ItemConfig),
-            typeof(KickOutReasonConfig),
-            typeof(LanguageConfig),
-            typeof(MailConfig),
-            typeof(NPCConfig),
-            typeof(NPCExConfig),
-            typeof(OrderInfoConfig),
-            typeof(PlayerFaceConfig),
-            typeof(PlayerFacePicConfig),
-            typeof(PlayerFacePicStarConfig),
-            typeof(PlayerFaceStarConfig),
-            typeof(PlayerLVConfig),
-            typeof(priorbundleConfig),
-            //typeof(PriorLanguageConfig),
-            typeof(RichTextMsgReplaceConfig),
-            typeof(RuleConfig),
-            typeof(SkillConfig),
-            typeof(StoreConfig),
-            typeof(SuccessConfig),
-            typeof(SysInfoConfig),
-            typeof(TitleStarUpConfig)
-        };
-
-        // 閫愪釜鍔犺浇閰嶇疆骞舵洿鏂拌繘搴�
-        for (int i = 0; i < configTypes.Length; i++)
-        {
-            await LoadConfigByType(configTypes[i]);
-            loadingProgress = (float)(i + 1) / totalConfigs;
-        }
-
-        // 鍔犺浇瀹屾垚鍚庤缃甶sLoadFinished涓簍rue
-        loadingProgress = 1f;
-        isLoadFinished = true;
-    }
-
-    public async UniTask LoadConfigByType(Type configType)
-    {
-        string configName = configType.Name;
-        if (configName.EndsWith("Config"))
-        {
-            configName = configName.Substring(0, configName.Length - 6);
-        }
-        TextAsset textAsset = 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 | System.Reflection.BindingFlags.FlattenHierarchy);
-            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} 娌℃湁闈欐�両nit鏂规硶");
-            }
-        }
-        else
-        {
-            Debug.LogError($"鎵句笉鍒伴厤缃枃浠�: {configName}");
-        }
-    }
-
-    private async UniTask LoadConfig<T>() where T : class
-    {
-        string configName = typeof(T).Name;
-
-        TextAsset textAsset = ResManager.Instance.LoadAsset<TextAsset>("Config", configName);
-        if (textAsset != null)
-        {
-            string[] lines = textAsset.text.Split('\n');
-            var methodInfo = typeof(T).GetMethod("Init", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
-            if (methodInfo != null)
-            {
-                methodInfo.Invoke(null, lines);
-                // 璁剧疆鍒濆鍖栨爣蹇�
-                var isInitField = typeof(T).GetField("isInit", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
-                if (isInitField != null)
-                {
-                    isInitField.SetValue(null, true);
-                }
-                Debug.Log($"鍔犺浇閰嶇疆: {typeof(T).Name} 鎴愬姛");
-            }
-            else
-            {
-                Debug.LogError($"閰嶇疆绫� {typeof(T).Name} 娌℃湁闈欐�両nit鏂规硶");
-            }
-        }
-        else
-        {
-            Debug.LogError($"鎵句笉鍒伴厤缃枃浠�: {configName}");
-        }
-    }
-
-    public float GetLoadingProgress()
-    {
-        return loadingProgress;
-    }
-
-    private void ClearConfigDictionary<T>() where T : class
-    {
-        // 閲嶇疆 T 鍒濆鍖栫姸鎬�
-        var isInitField = typeof(T).GetField("isInit", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
-        if (isInitField != null)
-        {
-            isInitField.SetValue(null, false);
-        }
-    }
-
-    public override void Release()
-    {
-        // 娓呯┖ AppointItemConfig 瀛楀吀
-        ClearConfigDictionary<AppointItemConfig>();
-        // 娓呯┖ AudioConfig 瀛楀吀
-        ClearConfigDictionary<AudioConfig>();
-        // 娓呯┖ ChestsAwardConfig 瀛楀吀
-        ClearConfigDictionary<ChestsAwardConfig>();
-        // 娓呯┖ ChestsConfig 瀛楀吀
-        ClearConfigDictionary<ChestsConfig>();
-        // 娓呯┖ CTGConfig 瀛楀吀
-        ClearConfigDictionary<CTGConfig>();
-        // 娓呯┖ CTGSelectItemConfig 瀛楀吀
-        ClearConfigDictionary<CTGSelectItemConfig>();
-        // 娓呯┖ DienstgradConfig 瀛楀吀
-        ClearConfigDictionary<DienstgradConfig>();
-        // 娓呯┖ DirtyWordConfig 瀛楀吀
-        ClearConfigDictionary<DirtyWordConfig>();
-        // 娓呯┖ EffectConfig 瀛楀吀
-        ClearConfigDictionary<EffectConfig>();
-        // 娓呯┖ EmojiPackConfig 瀛楀吀
-        ClearConfigDictionary<EmojiPackConfig>();
-        // 娓呯┖ FaceConfig 瀛楀吀
-        ClearConfigDictionary<FaceConfig>();
-        // 娓呯┖ FamilyConfig 瀛楀吀
-        ClearConfigDictionary<FamilyConfig>();
-        // 娓呯┖ FuncConfigConfig 瀛楀吀
-        ClearConfigDictionary<FuncConfigConfig>();
-        // 娓呯┖ FuncOpenLVConfig 瀛楀吀
-        ClearConfigDictionary<FuncOpenLVConfig>();
-        // 娓呯┖ FunctionTeamSetConfig 瀛楀吀
-        ClearConfigDictionary<FunctionTeamSetConfig>();
-        // 娓呯┖ GetItemWaysConfig 瀛楀吀
-        ClearConfigDictionary<GetItemWaysConfig>();
-        // 娓呯┖ GmCmdConfig 瀛楀吀
-        ClearConfigDictionary<GmCmdConfig>();
-        // 娓呯┖ GuideConfig 瀛楀吀
-        ClearConfigDictionary<GuideConfig>();
-        // 娓呯┖ IconConfig 瀛楀吀
-        ClearConfigDictionary<IconConfig>();
-        // 娓呯┖ InitialFunctionConfig 瀛楀吀
-        ClearConfigDictionary<InitialFunctionConfig>();
-        // 娓呯┖ ItemConfig 瀛楀吀
-        ClearConfigDictionary<ItemConfig>();
-        // 娓呯┖ KickOutReasonConfig 瀛楀吀
-        ClearConfigDictionary<KickOutReasonConfig>();
-        // 娓呯┖ LanguageConfig 瀛楀吀
-        ClearConfigDictionary<LanguageConfig>();
-        // 娓呯┖ MailConfig 瀛楀吀
-        ClearConfigDictionary<MailConfig>();
-        // 娓呯┖ NPCConfig 瀛楀吀
-        ClearConfigDictionary<NPCConfig>();
-        // 娓呯┖ NPCExConfig 瀛楀吀
-        ClearConfigDictionary<NPCExConfig>();
-        // 娓呯┖ OrderInfoConfig 瀛楀吀
-        ClearConfigDictionary<OrderInfoConfig>();
-        // 娓呯┖ PlayerFaceConfig 瀛楀吀
-        ClearConfigDictionary<PlayerFaceConfig>();
-        // 娓呯┖ PlayerFacePicConfig 瀛楀吀
-        ClearConfigDictionary<PlayerFacePicConfig>();
-        // 娓呯┖ PlayerFacePicStarConfig 瀛楀吀
-        ClearConfigDictionary<PlayerFacePicStarConfig>();
-        // 娓呯┖ PlayerFaceStarConfig 瀛楀吀
-        ClearConfigDictionary<PlayerFaceStarConfig>();
-        // 娓呯┖ PlayerLVConfig 瀛楀吀
-        ClearConfigDictionary<PlayerLVConfig>();
-        // 娓呯┖ priorbundleConfig 瀛楀吀
-        ClearConfigDictionary<priorbundleConfig>();
-        // 娓呯┖ PriorLanguageConfig 瀛楀吀
-        ClearConfigDictionary<PriorLanguageConfig>();
-        // 娓呯┖ RichTextMsgReplaceConfig 瀛楀吀
-        ClearConfigDictionary<RichTextMsgReplaceConfig>();
-        // 娓呯┖ RuleConfig 瀛楀吀
-        ClearConfigDictionary<RuleConfig>();
-        // 娓呯┖ SkillConfig 瀛楀吀
-        ClearConfigDictionary<SkillConfig>();
-        // 娓呯┖ StoreConfig 瀛楀吀
-        ClearConfigDictionary<StoreConfig>();
-        // 娓呯┖ SuccessConfig 瀛楀吀
-        ClearConfigDictionary<SuccessConfig>();
-        // 娓呯┖ SysInfoConfig 瀛楀吀
-        ClearConfigDictionary<SysInfoConfig>();
-        // 娓呯┖ TitleStarUpConfig 瀛楀吀
-        ClearConfigDictionary<TitleStarUpConfig>();
-    }
-}
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using Cysharp.Threading.Tasks;
+using System.Reflection;
+
+
+public class ConfigManager : ManagerBase<ConfigManager>
+{
+    public bool isLoadFinished
+    {
+        get;
+        private set;
+    }
+
+    private float loadingProgress = 0f;
+
+    public override void Init()
+    {
+        base.Init();
+        InitConfigs();
+    }
+
+    public virtual async UniTask InitConfigs()
+    {
+        // 鍔犺浇閰嶇疆鏂囦欢
+        await LoadConfigs();
+    }
+
+    protected async UniTask LoadConfigs()
+    {
+        loadingProgress = 0f;
+        isLoadFinished = false;
+
+        // 鍔犺浇閰嶇疆鏂囦欢
+        int totalConfigs = 17;
+        Type[] configTypes = new Type[] {
+            typeof(ChestsAwardConfig),
+            typeof(CTGConfig),
+            typeof(DirtyWordConfig),
+            typeof(EquipGSParamConfig),
+            typeof(NPCConfig),
+            typeof(NPCExConfig),
+            typeof(OrderInfoConfig),
+            typeof(PlayerFacePicStarConfig),
+            typeof(PlayerFaceStarConfig),
+            typeof(PlayerLVConfig),
+            typeof(StoreConfig),
+            typeof(SuccessConfig),
+            typeof(SysInfoConfig),
+            typeof(TitleStarUpConfig),
+            typeof(TreasureItemLibConfig),
+            typeof(TreasureSetConfig),
+            typeof(XBGetItemConfig)
+        };
+
+#if UNITY_EDITOR
+        List<string> fastName = new List<string>();
+#endif
+        // 閫愪釜鍔犺浇閰嶇疆骞舵洿鏂拌繘搴�
+        for (int i = 0; i < configTypes.Length; i++)
+        {
+            var sw = System.Diagnostics.Stopwatch.StartNew();
+            await LoadConfigByType(configTypes[i]);
+            sw.Stop();
+#if UNITY_EDITOR
+            if (sw.ElapsedMilliseconds >= 100)
+            {
+                Debug.LogError($"鍔犺浇閰嶇疆 {configTypes[i].Name} 鑰楁椂杈冮暱: {sw.ElapsedMilliseconds} ms");
+            }
+            else if (sw.ElapsedMilliseconds <= 5)
+            {
+                fastName.Add(configTypes[i].Name);
+            }
+            Debug.Log($"鍔犺浇閰嶇疆: {configTypes[i].Name} 鐢ㄦ椂: {sw.ElapsedMilliseconds} ms");
+#endif
+            loadingProgress = (float)(i + 1) / totalConfigs;
+        }
+#if UNITY_EDITOR
+        System.IO.File.WriteAllText(Application.dataPath + "/fastConfig.txt", string.Join("\n", fastName));
+#endif
+
+        // 鍔犺浇瀹屾垚鍚庤缃甶sLoadFinished涓簍rue
+        loadingProgress = 1f;
+        isLoadFinished = true;
+    }
+
+    public async UniTask LoadConfigByType(Type configType)
+    {
+        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 });
+                // 璁剧疆鍒濆鍖栨爣蹇�
+                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} 娌℃湁闈欐�両nit鏂规硶");
+            }
+        }
+        else
+        {
+            Debug.LogError($"鎵句笉鍒伴厤缃枃浠�: {configName}");
+        }
+    }
+
+    private async UniTask LoadConfig<T>() where T : class
+    {
+        string configName = typeof(T).Name;
+
+        string[] texts = ResManager.Instance.LoadConfig(configName);
+        if (texts != null)
+        {
+            string[] lines = texts;
+            var methodInfo = typeof(T).GetMethod("Init", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
+            if (methodInfo != null)
+            {
+                methodInfo.Invoke(null, lines);
+                // 璁剧疆鍒濆鍖栨爣蹇�
+                var isInitField = typeof(T).GetField("isInit", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
+                if (isInitField != null)
+                {
+                    isInitField.SetValue(null, true);
+                }
+                Debug.Log($"鍔犺浇閰嶇疆: {typeof(T).Name} 鎴愬姛");
+            }
+            else
+            {
+                Debug.LogError($"閰嶇疆绫� {typeof(T).Name} 娌℃湁闈欐�両nit鏂规硶");
+            }
+        }
+        else
+        {
+            Debug.LogError($"鎵句笉鍒伴厤缃枃浠�: {configName}");
+        }
+    }
+
+    public float GetLoadingProgress()
+    {
+        return loadingProgress;
+    }
+
+    private void ClearConfigDictionary<T>() where T : class
+    {
+        // 閲嶇疆 T 鍒濆鍖栫姸鎬�
+        var isInitField = typeof(T).GetField("isInit", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static);
+        if (isInitField != null)
+        {
+            isInitField.SetValue(null, false);
+        }
+    }
+
+    public override void Release()
+    {
+        // 娓呯┖ ChestsAwardConfig 瀛楀吀
+        ClearConfigDictionary<ChestsAwardConfig>();
+        // 娓呯┖ CTGConfig 瀛楀吀
+        ClearConfigDictionary<CTGConfig>();
+        // 娓呯┖ DirtyWordConfig 瀛楀吀
+        ClearConfigDictionary<DirtyWordConfig>();
+        // 娓呯┖ EquipGSParamConfig 瀛楀吀
+        ClearConfigDictionary<EquipGSParamConfig>();
+        // 娓呯┖ NPCConfig 瀛楀吀
+        ClearConfigDictionary<NPCConfig>();
+        // 娓呯┖ NPCExConfig 瀛楀吀
+        ClearConfigDictionary<NPCExConfig>();
+        // 娓呯┖ OrderInfoConfig 瀛楀吀
+        ClearConfigDictionary<OrderInfoConfig>();
+        // 娓呯┖ PlayerFacePicStarConfig 瀛楀吀
+        ClearConfigDictionary<PlayerFacePicStarConfig>();
+        // 娓呯┖ PlayerFaceStarConfig 瀛楀吀
+        ClearConfigDictionary<PlayerFaceStarConfig>();
+        // 娓呯┖ PlayerLVConfig 瀛楀吀
+        ClearConfigDictionary<PlayerLVConfig>();
+        // 娓呯┖ StoreConfig 瀛楀吀
+        ClearConfigDictionary<StoreConfig>();
+        // 娓呯┖ SuccessConfig 瀛楀吀
+        ClearConfigDictionary<SuccessConfig>();
+        // 娓呯┖ SysInfoConfig 瀛楀吀
+        ClearConfigDictionary<SysInfoConfig>();
+        // 娓呯┖ TitleStarUpConfig 瀛楀吀
+        ClearConfigDictionary<TitleStarUpConfig>();
+        // 娓呯┖ TreasureItemLibConfig 瀛楀吀
+        ClearConfigDictionary<TreasureItemLibConfig>();
+        // 娓呯┖ TreasureSetConfig 瀛楀吀
+        ClearConfigDictionary<TreasureSetConfig>();
+        // 娓呯┖ XBGetItemConfig 瀛楀吀
+        ClearConfigDictionary<XBGetItemConfig>();
+    }
+}

--
Gitblit v1.8.0