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