yyl
2026-02-11 3f2cd27c5dfb3b450245bf1a37fc1b3414031c7c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
using System.Collections;
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);
        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 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);
    }
}