From c6a7ac3739907e8bb7c751d408e227e19f246f49 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 08 五月 2026 17:27:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into h5version
---
Main/Config/ConfigManager.cs | 369 ++++++++++++++++------------------------------------
1 files changed, 115 insertions(+), 254 deletions(-)
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index e178ae3..e9e2723 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -17,16 +17,12 @@
private set;
}
- private List<Type> preInitConfig = new List<Type>()
- {
- typeof (FuncConfigConfig),
- };
-
private float loadingProgress = 0f;
- public override async UniTask Init()
+ public override void Init()
{
- await InitConfigs();
+ base.Init();
+ InitConfigs();
}
public virtual async UniTask InitConfigs()
@@ -35,25 +31,12 @@
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(ActBillboardAwardConfig),
typeof(ActHeroAppearArtConfig),
@@ -62,47 +45,33 @@
typeof(ActHeroReturnArtConfig),
typeof(ActLunhuidianTypeConfig),
typeof(ActSignAwardConfig),
+ typeof(ActSignConfig),
+ typeof(ActSpecialSaleConfig),
+ typeof(ActTaskConfig),
+ typeof(ActTaskTempConfig),
typeof(ActTotalRechargeConfig),
typeof(ActTotalRechargeTempConfig),
typeof(ActTotDayRechargeConfig),
typeof(ActTotDayRechargeTempConfig),
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),
@@ -112,32 +81,18 @@
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(HeroSkinAttrConfig),
- typeof(HeroSkinConfig),
- typeof(HeroTalentConfig),
typeof(HorseClassConfig),
typeof(HorseIDConfig),
typeof(HorseSkinConfig),
- typeof(IconConfig),
typeof(ItemCompoundConfig),
typeof(ItemConfig),
- typeof(KickOutReasonConfig),
- typeof(LanguageConfig),
typeof(LineupRecommendConfig),
typeof(LLMJConfig),
- typeof(MailConfig),
typeof(MainChapterConfig),
typeof(MainLevelConfig),
typeof(MGGanwuLVConfig),
@@ -152,24 +107,16 @@
typeof(OrderInfoConfig),
typeof(PlayerAttrConfig),
typeof(PlayerFaceConfig),
- typeof(PlayerFacePicConfig),
- typeof(PlayerLVConfig),
- typeof(PlayerPropertyConfig),
typeof(PopWinOrderConfig),
typeof(PresetUnlockConfig),
typeof(PriorBundleConfig),
typeof(RandomNameConfig),
- typeof(RealmConfig),
- typeof(RealmLVUPTaskConfig),
- typeof(RichTextMsgReplaceConfig),
- typeof(RuleConfig),
+ typeof(RobotConfig),
typeof(SignInConfig),
- typeof(SkillConfig),
typeof(SkillSkinConfig),
typeof(StoreConfig),
typeof(SuccessConfig),
typeof(SysInfoConfig),
- typeof(TaskConfig),
typeof(TianziConfig),
typeof(TimingGiftConfig),
typeof(TimingGiftTypeConfig),
@@ -177,8 +124,6 @@
typeof(TitleStarUpConfig),
typeof(TravelEventConfig),
typeof(TravelSceneryConfig),
- typeof(TreasureCntAwardConfig),
- typeof(TreasureItemLibConfig),
typeof(TreasureSetConfig),
typeof(TreeLVConfig),
typeof(WindowSearchConfig),
@@ -186,85 +131,64 @@
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;
-
-#if UNITY_WEBGL && !UNITY_EDITOR
- // ============================================================
- // WebGL 浼樺寲锛氫袱闃舵鍔犺浇
- // 闃舵1: 涓�娆℃�у苟鍙戝彂璧锋墍鏈� TextAsset 鍔犺浇锛堝悓 bundle 鍙笅杞戒竴娆★級
- // 闃舵2: 浠庡唴瀛樹腑鍒嗘壒瑙f瀽锛屾瘡鎵� Yield 闃叉娴忚鍣ㄥ崱姝�
- // ============================================================
-
- // 闃舵1: 骞跺彂鍔犺浇鎵�鏈夐厤缃枃鏈埌鍐呭瓨
- Debug.Log("[ConfigManager] WebGL 闃舵1: 鎵归噺鍔犺浇閰嶇疆鏂囦欢...");
- var configList = configTypes.ToList();
- var configDataMap = new Dictionary<Type, string[]>(totalConfigs);
- var loadTasks = new List<UniTask>(totalConfigs);
-
- foreach (var configType in configList)
- {
- var ct = configType; // closure capture
- loadTasks.Add(LoadConfigTextAsync(ct).ContinueWith(texts =>
- {
- if (texts != null)
- configDataMap[ct] = texts;
- else
- Debug.LogError($"鎵句笉鍒伴厤缃枃浠�: {ct.Name}");
- }));
- }
- await UniTask.WhenAll(loadTasks);
- loadingProgress = 0.5f; // 缃戠粶鍔犺浇瀹屾垚 50%
- Debug.Log($"[ConfigManager] WebGL 闃舵1瀹屾垚: {configDataMap.Count}/{totalConfigs} 涓厤缃凡鍔犺浇鍒板唴瀛�");
-
- // 闃舵2: 浠庡唴瀛樹腑鍒嗘壒瑙f瀽鍒濆鍖�
- const int parseBatchSize = 10;
- int parsed = 0;
- foreach (var configType in configList)
- {
- if (configDataMap.TryGetValue(configType, out var texts))
- {
- InitConfigFromTexts(configType, texts);
- }
- parsed++;
- loadingProgress = 0.5f + 0.5f * parsed / totalConfigs;
-
- // 姣� parseBatchSize 涓鍑轰富绾跨▼
- if (parsed % parseBatchSize == 0)
- await UniTask.Yield();
- }
-#else
- List<UniTask> loadTasks = new List<UniTask>();
// 閫愪釜鍔犺浇閰嶇疆骞舵洿鏂拌繘搴�
foreach (var configType in configTypes)
{
-#if UNITY_EDITOR
var sw = System.Diagnostics.Stopwatch.StartNew();
-#endif
- UniTask uniTask = LoadConfigByTypeAsync(configType).ContinueWith(() =>
- {
+ LoadConfigByType(configType);
+ sw.Stop();
#if UNITY_EDITOR
- if (sw.ElapsedMilliseconds >= 100)
- {
- Debug.LogWarning($"鍔犺浇閰嶇疆 {configType.Name} 鑰楁椂杈冮暱: {sw.ElapsedMilliseconds} ms");
- }
- else
- {
- Debug.Log($"鍔犺浇閰嶇疆: {configType.Name} 鐢ㄦ椂: {sw.ElapsedMilliseconds} ms");
- }
- 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");
#endif
-
- loadingProgress = (float)(++iterator) / totalConfigs;
- });
-
- loadTasks.Add(uniTask);
-
+ loadingProgress = (float)(iterator++ + 1) / totalConfigs;
}
+#if UNITY_EDITOR
+ if (Launch.Instance.isOpenConfigTesting)
+ {
+ System.IO.File.WriteAllText(Application.dataPath + "/fastConfig.txt", string.Join("\n", fastName));
- await UniTask.WhenAll(loadTasks);
+ //鍔犺浇瀹屽悗鍗歌浇
+ foreach (var configType in configTypes)
+ {
+ var methodInfo = configType.GetMethod("ForceRelease", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.FlattenHierarchy);
+ if (methodInfo != null)
+ {
+ methodInfo.Invoke(null, null);
+ }
+ }
+ }
#endif
// 鍔犺浇瀹屾垚鍚庤缃甶sLoadFinished涓簍rue
@@ -272,64 +196,28 @@
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}");
- // }
- // }
-
- /// <summary>
- /// US2: Async variant of LoadConfigByType. Uses UniTask-based config loading.
- /// </summary>
- public async UniTask LoadConfigByTypeAsync(Type configType)
+ public void LoadConfigByType(Type configType)
{
string configName = configType.Name;
if (configName.EndsWith("Config"))
{
configName = configName.Substring(0, configName.Length - 6);
}
- string[] texts = await ResManager.Instance.LoadConfigAsync(configName);
+ string[] texts = ResManager.Instance.LoadConfig(configName);
if (texts != null)
{
- var methodInfo = configType.GetMethod("Init", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.FlattenHierarchy);
+ 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[] { texts });
+ 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
{
@@ -342,38 +230,36 @@
}
}
- // 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}");
- // }
- // }
+ 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()
{
@@ -406,6 +292,14 @@
ClearConfigDictionary<ActLunhuidianTypeConfig>();
// 娓呯┖ ActSignAwardConfig 瀛楀吀
ClearConfigDictionary<ActSignAwardConfig>();
+ // 娓呯┖ ActSignConfig 瀛楀吀
+ ClearConfigDictionary<ActSignConfig>();
+ // 娓呯┖ ActSpecialSaleConfig 瀛楀吀
+ ClearConfigDictionary<ActSpecialSaleConfig>();
+ // 娓呯┖ ActTaskConfig 瀛楀吀
+ ClearConfigDictionary<ActTaskConfig>();
+ // 娓呯┖ ActTaskTempConfig 瀛楀吀
+ ClearConfigDictionary<ActTaskTempConfig>();
// 娓呯┖ ActTotalRechargeConfig 瀛楀吀
ClearConfigDictionary<ActTotalRechargeConfig>();
// 娓呯┖ ActTotalRechargeTempConfig 瀛楀吀
@@ -530,6 +424,8 @@
ClearConfigDictionary<PriorBundleConfig>();
// 娓呯┖ RandomNameConfig 瀛楀吀
ClearConfigDictionary<RandomNameConfig>();
+ // 娓呯┖ RobotConfig 瀛楀吀
+ ClearConfigDictionary<RobotConfig>();
// 娓呯┖ SignInConfig 瀛楀吀
ClearConfigDictionary<SignInConfig>();
// 娓呯┖ SkillSkinConfig 瀛楀吀
@@ -566,22 +462,9 @@
ClearConfigDictionary<ZhanlingConfig>();
}
- /// <summary>
- /// 鍙姞杞介厤缃枃鏈紝涓嶅仛瑙f瀽銆傜敤浜� WebGL 鎵归噺棰勫姞杞姐��
- /// </summary>
- private async UniTask<string[]> LoadConfigTextAsync(Type configType)
- {
- string configName = configType.Name;
- if (configName.EndsWith("Config"))
- configName = configName.Substring(0, configName.Length - 6);
- return await ResManager.Instance.LoadConfigAsync(configName);
- }
-
#if UNITY_EDITOR
- /// <summary>
- /// Editor 鑷锛氬弽灏勫姞杞芥墍鏈夐厤缃被骞惰褰曡�楁椂銆�
- /// </summary>
- public async void SelfCheckAllConfigs()
+ [MenuItem("Tools/Config/鑷")]
+ public static void CheckAndGenerateFastConfig()
{
// 鑾峰彇 Editor Assembly
var editorAsm = System.AppDomain.CurrentDomain.GetAssemblies()
@@ -622,8 +505,8 @@
foreach (var className in checkClasses)
{
// 杩欓噷涔熻鐢� Editor Assembly 鑾峰彇绫诲瀷
- var cfgType = editorAsm.GetType(className) ?? Type.GetType(className);
- if (cfgType == null)
+ var configType = editorAsm.GetType(className) ?? Type.GetType(className);
+ if (configType == null)
{
Debug.LogWarning($"[鑷] 鏈壘鍒扮被鍨�: {className}");
continue;
@@ -632,15 +515,15 @@
var sw = System.Diagnostics.Stopwatch.StartNew();
// 鍙嶅皠璋冪敤闈欐�両nit鏂规硶
- string configName = cfgType.Name;
+ string configName = configType.Name;
if (configName.EndsWith("Config"))
configName = configName.Substring(0, configName.Length - 6);
- string[] texts = await ResManager.Instance.LoadConfigAsync(configName);
+ string[] texts = ResManager.Instance.LoadConfig(configName);
if (texts != null)
{
string[] lines = texts;
- var methodInfo = cfgType.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[] { lines });
@@ -651,21 +534,21 @@
if (sw.ElapsedMilliseconds >= 500)
{
- Debug.LogError($"[鑷] 鍔犺浇閰嶇疆 {cfgType.Name} 鑰楁椂杈冮暱: {sw.ElapsedMilliseconds} ms");
+ Debug.LogError($"[鑷] 鍔犺浇閰嶇疆 {configType.Name} 鑰楁椂杈冮暱: {sw.ElapsedMilliseconds} ms");
}
else if (sw.ElapsedMilliseconds <= 5)
{
- fastName.Add(cfgType.Name);
+ fastName.Add(configType.Name);
}
- Debug.Log($"[鑷] 鍔犺浇閰嶇疆: {cfgType.Name} 鐢ㄦ椂: {sw.ElapsedMilliseconds} ms");
+ Debug.Log($"[鑷] 鍔犺浇閰嶇疆: {configType.Name} 鐢ㄦ椂: {sw.ElapsedMilliseconds} ms");
}
// 閲婃斁鎵�鏈夊凡鍔犺浇鐨勯厤缃�
foreach (var className in checkClasses)
{
- var cfgType = editorAsm.GetType(className) ?? Type.GetType(className);
- if (cfgType == null) continue;
- var methodInfo = cfgType.GetMethod("ForceRelease", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.FlattenHierarchy);
+ 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);
@@ -676,26 +559,4 @@
Debug.Log($"[鑷] fastConfig.txt 鐢熸垚瀹屾瘯锛屽揩閫熻〃鏈夛細{string.Join(", ", fastName)}");
}
#endif
-
- /// <summary>
- /// 浠庡凡鍔犺浇鐨勬枃鏈垵濮嬪寲閰嶇疆锛堢函鍐呭瓨鎿嶄綔锛屾棤缃戠粶锛夈��
- /// </summary>
- private void InitConfigFromTexts(Type configType, string[] 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[] { 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鏂规硶");
- }
- }
-
}
--
Gitblit v1.8.0