From bc1cb6da854cb2e9144f10ed55330a537ecdca16 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 04 三月 2026 14:35:57 +0800
Subject: [PATCH] 466 h5版本 资源规则修改 打包修改(未完成 勿拉取)
---
Main/Config/ConfigManager.cs | 370 +++++++++++++++++++++-------------------------------
1 files changed, 153 insertions(+), 217 deletions(-)
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index 37cc055..c70f54f 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -17,12 +17,16 @@
private set;
}
+ private List<Type> preInitConfig = new List<Type>()
+ {
+ typeof (FuncConfigConfig),
+ };
+
private float loadingProgress = 0f;
- public override void Init()
+ public override async UniTask Init()
{
- base.Init();
- InitConfigs().Forget();
+ await InitConfigs();
}
public virtual async UniTask InitConfigs()
@@ -31,33 +35,64 @@
await LoadConfigs();
}
+ public async UniTask PreInit()
+ {
+ List<UniTask> uniTasks = new List<UniTask>();
+ foreach (var type in preInitConfig)
+ {
+ uniTasks.Add(LoadConfigByTypeAsync(type));
+ }
+ await UniTask.WhenAll(uniTasks);
+ }
+
protected async UniTask LoadConfigs()
{
loadingProgress = 0f;
isLoadFinished = false;
- // 鍔犺浇閰嶇疆鏂囦欢
+ // 鑷姩鐢熸垚锛氭敹闆嗘墍鏈夐厤缃被鍨嬶紙姝ゆ灏嗚 ConfigGenerater.Generate 鑷姩瑕嗙洊锛�
+ // 鑷姩鐢熸垚锛氭敹闆嗘墍鏈夐厤缃被鍨�
+ // 鑷姩鐢熸垚锛氭敹闆嗘墍鏈夐厤缃被鍨�
+ // 鑷姩鐢熸垚锛氭敹闆嗘墍鏈夐厤缃被鍨�
HashSet<Type> configTypes = new HashSet<Type>() {
typeof(ActLunhuidianTypeConfig),
typeof(ADAwardConfig),
+ typeof(AppointItemConfig),
+ typeof(AudioConfig),
typeof(BattleMapConfig),
typeof(BeautyConfig),
typeof(BeautyQualityLVConfig),
typeof(BeautySkinConfig),
+ typeof(ChatBubbleBoxConfig),
typeof(ChestsAwardConfig),
+ typeof(ChestsConfig),
typeof(CTGConfig),
+ typeof(CTGSelectItemConfig),
+ typeof(DailyLivenessRewardConfig),
typeof(DailyTaskConfig),
typeof(DamageNumConfig),
+ typeof(DirtyNameConfig),
typeof(DirtyWordConfig),
typeof(DungeonConfig),
typeof(DungeonOpenTimeConfig),
+ typeof(EffectConfig),
+ typeof(EmojiPackConfig),
typeof(FaceConfig),
+ typeof(FamilyConfig),
typeof(FamilyDonateConfig),
+ typeof(FamilyEmblemConfig),
typeof(FBDJGEffectConfig),
typeof(FBDJGLevelConfig),
typeof(FBDJGQuickConfig),
typeof(FightPowerRatioConfig),
typeof(FirstChargeConfig),
+ typeof(FirstGoldConfig),
+ typeof(FrameAnimationConfig),
+ typeof(FuncConfigConfig),
+ typeof(FuncOpenLVConfig),
+ typeof(FunctionTeamSetConfig),
+ typeof(GetItemWaysConfig),
+ typeof(GmCmdConfig),
typeof(GoldRushCampConfig),
typeof(GoldRushItemConfig),
typeof(GoldRushWorkerConfig),
@@ -67,16 +102,30 @@
typeof(GubaoResonanceAttrConfig),
typeof(GubaoResonanceConfig),
typeof(GubaoStarConfig),
+ typeof(GuideConfig),
+ typeof(HeroAwakeConfig),
+ typeof(HeroBreakConfig),
+ typeof(HeroConfig),
typeof(HeroFatesConfig),
typeof(HeroFatesQualityLVConfig),
+ typeof(HeroFetterConfig),
typeof(HeroLineupHaloConfig),
+ typeof(HeroQualityAwakeConfig),
+ typeof(HeroQualityBreakConfig),
+ typeof(HeroQualityConfig),
typeof(HeroQualityLVConfig),
+ typeof(HeroSkinConfig),
+ typeof(HeroTalentConfig),
typeof(HorseClassConfig),
typeof(HorseSkinConfig),
+ typeof(IconConfig),
typeof(ItemCompoundConfig),
typeof(ItemConfig),
+ typeof(KickOutReasonConfig),
+ typeof(LanguageConfig),
typeof(LineupRecommendConfig),
typeof(LLMJConfig),
+ typeof(MailConfig),
typeof(MainChapterConfig),
typeof(MainLevelConfig),
typeof(MGGanwuLVConfig),
@@ -91,14 +140,23 @@
typeof(OrderInfoConfig),
typeof(PlayerAttrConfig),
typeof(PlayerFaceConfig),
+ typeof(PlayerFacePicConfig),
+ typeof(PlayerLVConfig),
+ typeof(PlayerPropertyConfig),
typeof(PresetUnlockConfig),
typeof(PriorBundleConfig),
typeof(RandomNameConfig),
+ typeof(RealmConfig),
+ typeof(RealmLVUPTaskConfig),
+ typeof(RichTextMsgReplaceConfig),
+ typeof(RuleConfig),
typeof(SignInConfig),
+ typeof(SkillConfig),
typeof(SkillSkinConfig),
typeof(StoreConfig),
typeof(SuccessConfig),
typeof(SysInfoConfig),
+ typeof(TaskConfig),
typeof(TianziConfig),
typeof(TimingGiftConfig),
typeof(TimingGiftTypeConfig),
@@ -106,6 +164,8 @@
typeof(TitleStarUpConfig),
typeof(TravelEventConfig),
typeof(TravelSceneryConfig),
+ typeof(TreasureCntAwardConfig),
+ typeof(TreasureItemLibConfig),
typeof(TreasureSetConfig),
typeof(TreeLVConfig),
typeof(WindowSearchConfig),
@@ -113,106 +173,81 @@
typeof(ZhanlingConfig)
};
-#if UNITY_EDITOR
- HashSet<Type> configHashSet = new HashSet<Type>();
- if (System.IO.File.Exists(Application.dataPath + "/fastConfig.txt") && Launch.Instance.isOpenConfigTesting)
- {
- string[] strConfgsArr = System.IO.File.ReadAllLines(Application.dataPath + "/fastConfig.txt");
- foreach (string str in strConfgsArr)
- {
- Type tpy = Type.GetType(str);
- configHashSet.Add(tpy);
- }
- }
- // 缂栬緫鍣ㄤ笅鍔犲叆 璇勪及鍔犺浇鏃跺父
- foreach (var config in configHashSet)
- {
- if (!configTypes.Add(config))
- {
- Debug.LogWarning($"閰嶇疆 {config.Name} 宸茬粡瀛樺湪浜� configTypes 涓紝璺宠繃娣诲姞銆�");
- }
- }
- List<string> fastName = new List<string>();
-#endif
+
int iterator = 0;
int totalConfigs = configTypes.Count;
+
+ List<UniTask> loadTasks = new List<UniTask>();
// 閫愪釜鍔犺浇閰嶇疆骞舵洿鏂拌繘搴�
foreach (var configType in configTypes)
{
+#if UNITY_EDITOR
var sw = System.Diagnostics.Stopwatch.StartNew();
- LoadConfigByType(configType);
- sw.Stop();
-#if UNITY_EDITOR
- if (sw.ElapsedMilliseconds >= 100)
- {
- Debug.LogError($"鍔犺浇閰嶇疆 {configType.Name} 鑰楁椂杈冮暱: {sw.ElapsedMilliseconds} ms");
- }
- else if (sw.ElapsedMilliseconds <= 5)
- {
- fastName.Add(configType.Name);
- }
- Debug.Log($"鍔犺浇閰嶇疆: {configType.Name} 鐢ㄦ椂: {sw.ElapsedMilliseconds} ms");
#endif
- loadingProgress = (float)(iterator++ + 1) / totalConfigs;
- }
-#if UNITY_EDITOR
- if (Launch.Instance.isOpenConfigTesting)
- {
- System.IO.File.WriteAllText(Application.dataPath + "/fastConfig.txt", string.Join("\n", fastName));
-
- //鍔犺浇瀹屽悗鍗歌浇
- foreach (var configType in configTypes)
+ UniTask uniTask = LoadConfigByTypeAsync(configType).ContinueWith(() =>
{
- var methodInfo = configType.GetMethod("ForceRelease", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.FlattenHierarchy);
- if (methodInfo != null)
+#if UNITY_EDITOR
+ if (sw.ElapsedMilliseconds >= 100)
{
- methodInfo.Invoke(null, null);
+ Debug.LogWarning($"鍔犺浇閰嶇疆 {configType.Name} 鑰楁椂杈冮暱: {sw.ElapsedMilliseconds} ms");
}
- }
- }
+ else
+ {
+ Debug.Log($"鍔犺浇閰嶇疆: {configType.Name} 鐢ㄦ椂: {sw.ElapsedMilliseconds} ms");
+ }
+ sw.Stop();
#endif
+
+ loadingProgress = (float)(iterator++ + 1) / totalConfigs;
+ });
+
+ loadTasks.Add(uniTask);
+
+ }
+
+ await UniTask.WhenAll(loadTasks);
// 鍔犺浇瀹屾垚鍚庤缃甶sLoadFinished涓簍rue
loadingProgress = 1f;
isLoadFinished = true;
}
- public void LoadConfigByType(Type configType)
- {
- string configName = configType.Name;
- if (configName.EndsWith("Config"))
- {
- 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;
- 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}");
- }
- }
+ // public void LoadConfigByType(Type configType)
+ // {
+ // string configName = configType.Name;
+ // if (configName.EndsWith("Config"))
+ // {
+ // 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;
+ // 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}");
+ // }
+ // }
/// <summary>
/// US2: Async variant of LoadConfigByType. Uses UniTask-based config loading.
@@ -227,7 +262,7 @@
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);
+ 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 });
@@ -248,38 +283,38 @@
}
}
- private async UniTask LoadConfig<T>() where T : class
- {
- string configName = typeof(T).Name;
+ // 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;
- 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}");
- }
- }
+ // #pragma warning disable CS0618
+ // string[] texts = ResManager.Instance.LoadConfig(configName);
+ // #pragma warning restore CS0618
+ // 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()
{
@@ -446,103 +481,4 @@
ClearConfigDictionary<ZhanlingConfig>();
}
-#if UNITY_EDITOR
- [MenuItem("Tools/Config/鑷")]
- public static void CheckAndGenerateFastConfig()
- {
- // 鑾峰彇 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);
-
- #pragma warning disable CS0618
- string[] texts = ResManager.Instance.LoadConfig(configName);
- #pragma warning restore CS0618
- 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 >= 100)
- {
- 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)}");
- }
-#endif
}
--
Gitblit v1.8.0