From 3f2cd27c5dfb3b450245bf1a37fc1b3414031c7c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 11:03:58 +0800
Subject: [PATCH] 小游戏适配 资源系统改造
---
Main/Config/ConfigManager.cs | 42 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 41 insertions(+), 1 deletions(-)
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index dfac8d5..1f6c3ba 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -22,7 +22,7 @@
public override void Init()
{
base.Init();
- InitConfigs();
+ InitConfigs().Forget();
}
public virtual async UniTask InitConfigs()
@@ -181,7 +181,9 @@
{
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;
@@ -208,11 +210,47 @@
}
}
+ /// <summary>
+ /// US2: Async variant of LoadConfigByType. Uses UniTask-based config loading.
+ /// </summary>
+ public async UniTask LoadConfigByTypeAsync(Type configType)
+ {
+ string configName = configType.Name;
+ if (configName.EndsWith("Config"))
+ {
+ configName = configName.Substring(0, configName.Length - 6);
+ }
+ 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);
+ 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鏂规硶");
+ }
+ }
+ else
+ {
+ Debug.LogError($"鎵句笉鍒伴厤缃枃浠�: {configName}");
+ }
+ }
+
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;
@@ -453,7 +491,9 @@
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;
--
Gitblit v1.8.0