From 3f2cd27c5dfb3b450245bf1a37fc1b3414031c7c Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 11 二月 2026 11:03:58 +0800
Subject: [PATCH] 小游戏适配 资源系统改造

---
 Main/ResModule/UILoader.cs |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 1 deletions(-)

diff --git a/Main/ResModule/UILoader.cs b/Main/ResModule/UILoader.cs
index 4cdbc95..1c8f553 100644
--- a/Main/ResModule/UILoader.cs
+++ b/Main/ResModule/UILoader.cs
@@ -2,29 +2,40 @@
 using System.Collections.Generic;
 using UnityEngine;
 using System;
-
+using Cysharp.Threading.Tasks;
+using System.Threading;
 using System.IO;
 using UnityEngine.U2D;
 
 
 public class UILoader
 {
+    [System.Obsolete("US2: Use LoadWindowAsync instead.")]
     public static GameObject LoadWindow(string name)
     {
+        #pragma warning disable CS0618
         return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_WINDOW_SUFFIX, name);
+        #pragma warning restore CS0618
     }
 
+    [System.Obsolete("US2: Use LoadPrefabAsync instead.")]
     public static GameObject LoadPrefab(string _name)
     {
+        #pragma warning disable CS0618
         return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_PREFAB_SUFFIX, _name);
+        #pragma warning restore CS0618
     }
 
+    [System.Obsolete("US2: Use YooAssetService.ReleaseHandle or UnloadUnusedAssetsAsync instead.")]
     public static void UnLoadPrefab(string _assetName)
     {
+        #pragma warning disable CS0618
         ResManager.Instance.UnloadAsset(ResourcesPath.UI_PREFAB_SUFFIX, _assetName);
+        #pragma warning restore CS0618
     }
 
     //閫氳繃ICON琛ㄥ姞杞�
+    [System.Obsolete("US2: Use LoadSpriteAsync instead.")]
     public static Sprite LoadSprite(string _iconKey)
     {
         var iconConfig = IconConfig.Get(_iconKey);
@@ -36,31 +47,44 @@
         return LoadSprite(iconConfig.folder, iconConfig.sprite);
     }
 
+    [System.Obsolete("US2: Use LoadSpriteAsync instead.")]
     public static Sprite LoadSprite(string _folder, string _file)
     {
+        #pragma warning disable CS0618
         return ResManager.Instance.LoadAsset<Sprite>(StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder), _file);
+        #pragma warning restore CS0618
     }
 
+    [System.Obsolete("US2: Use YooAssetService.ReleaseHandle instead.")]
     public static void UnLoadSprite(string _iconKey)
     {
         var iconConfig = IconConfig.Get(_iconKey);
         if (iconConfig != null)
         {
             var bundleName = StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", iconConfig.folder);
+            #pragma warning disable CS0618
             ResManager.Instance.UnloadAsset(bundleName, iconConfig.sprite);
+            #pragma warning restore CS0618
         }
     }
 
+    [System.Obsolete("US2: Use LoadFontAsync instead.")]
     public static Font LoadFont(string _fontName)
     {
+        #pragma warning disable CS0618
         return ResManager.Instance.LoadAsset<Font>(ResourcesPath.UI_FONT_SUFFIX, _fontName);
+        #pragma warning restore CS0618
     }
 
+    [System.Obsolete("US2: Use YooAssetService.ReleaseHandle instead.")]
     public static void UnLoadFont(string _fontName)
     {
+        #pragma warning disable CS0618
         ResManager.Instance.UnloadAsset(ResourcesPath.UI_FONT_SUFFIX, _fontName);
+        #pragma warning restore CS0618
     }
 
+    [System.Obsolete("US2: Use LoadTexture2DAsync instead.")]
     public static Texture2D LoadTexture2D(string _iconKey)
     {
         var iconConfig = IconConfig.Get(_iconKey);
@@ -68,11 +92,62 @@
         {
             return null;
         }
+        #pragma warning disable CS0618
         return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite);
+        #pragma warning restore CS0618
     }
     
+    [System.Obsolete("US2: Use LoadTexture2DPNGAsync instead.")]
     public static Texture2D LoadTexture2DPNG(string name)
     {
+        #pragma warning disable CS0618
         return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false);
+        #pragma warning restore CS0618
+    }
+
+    // ====================================================================
+    // US2: Async UniTask variants
+    // ====================================================================
+
+    public static UniTask<GameObject> LoadWindowAsync(string name, CancellationToken ct = default)
+    {
+        return ResManager.Instance.LoadAssetAsync<GameObject>(ResourcesPath.UI_WINDOW_SUFFIX, name, ct: ct);
+    }
+
+    public static UniTask<GameObject> LoadPrefabAsync(string _name, CancellationToken ct = default)
+    {
+        return ResManager.Instance.LoadAssetAsync<GameObject>(ResourcesPath.UI_PREFAB_SUFFIX, _name, ct: ct);
+    }
+
+    public static async UniTask<Sprite> LoadSpriteAsync(string _iconKey, CancellationToken ct = default)
+    {
+        var iconConfig = IconConfig.Get(_iconKey);
+        if (iconConfig == null) return null;
+        return await LoadSpriteAsync(iconConfig.folder, iconConfig.sprite, ct);
+    }
+
+    public static UniTask<Sprite> LoadSpriteAsync(string _folder, string _file, CancellationToken ct = default)
+    {
+        return ResManager.Instance.LoadAssetAsync<Sprite>(
+            StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder), _file, ct: ct);
+    }
+
+    public static UniTask<Font> LoadFontAsync(string _fontName, CancellationToken ct = default)
+    {
+        return ResManager.Instance.LoadAssetAsync<Font>(ResourcesPath.UI_FONT_SUFFIX, _fontName, ct: ct);
+    }
+
+    public static async UniTask<Texture2D> LoadTexture2DAsync(string _iconKey, CancellationToken ct = default)
+    {
+        var iconConfig = IconConfig.Get(_iconKey);
+        if (iconConfig == null) return null;
+        return await ResManager.Instance.LoadAssetAsync<Texture2D>(
+            StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite, ct: ct);
+    }
+
+    public static UniTask<Texture2D> LoadTexture2DPNGAsync(string name, CancellationToken ct = default)
+    {
+        return ResManager.Instance.LoadAssetAsync<Texture2D>(
+            StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false, ct);
     }
 }

--
Gitblit v1.8.0