yyl
2026-03-04 bc1cb6da854cb2e9144f10ed55330a537ecdca16
Main/ResModule/UILoader.cs
@@ -6,109 +6,44 @@
using System.Threading;
using System.IO;
using UnityEngine.U2D;
using UnityEngine.UI;
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);
        if (iconConfig == null)
        {
            return null;
        }
        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);
        if (iconConfig == null)
        {
            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 async UniTask LoadSprite(string directory, string name, Image image)
    {
        var sprite = await LoadSpriteAsync(directory, name);
        if (null != sprite)
        {
            if (image != null)
            {
                image.overrideSprite = sprite;
            }
        }
    }
    public static async UniTask LoadSprite(string directory, string name, Image image, string failureName)
    {
        var sprite = await LoadSpriteAsync(directory, name);
        if (sprite != null)
        {
            if (image != null)
            {
                image.overrideSprite = sprite;
            }
        }
        else
        {
            image.SetSprite(failureName);
        }
    }
    public static UniTask<GameObject> LoadWindowAsync(string name, CancellationToken ct = default)
    {
        return ResManager.Instance.LoadAssetAsync<GameObject>(ResourcesPath.UI_WINDOW_SUFFIX, name, ct: ct);