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(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(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(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(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(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(StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false); #pragma warning restore CS0618 } // ==================================================================== // US2: Async UniTask variants // ==================================================================== public static UniTask LoadWindowAsync(string name, CancellationToken ct = default) { return ResManager.Instance.LoadAssetAsync(ResourcesPath.UI_WINDOW_SUFFIX, name, ct: ct); } public static UniTask LoadPrefabAsync(string _name, CancellationToken ct = default) { return ResManager.Instance.LoadAssetAsync(ResourcesPath.UI_PREFAB_SUFFIX, _name, ct: ct); } public static async UniTask 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 LoadSpriteAsync(string _folder, string _file, CancellationToken ct = default) { return ResManager.Instance.LoadAssetAsync( StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder), _file, ct: ct); } public static UniTask LoadFontAsync(string _fontName, CancellationToken ct = default) { return ResManager.Instance.LoadAssetAsync(ResourcesPath.UI_FONT_SUFFIX, _fontName, ct: ct); } public static async UniTask LoadTexture2DAsync(string _iconKey, CancellationToken ct = default) { var iconConfig = IconConfig.Get(_iconKey); if (iconConfig == null) return null; return await ResManager.Instance.LoadAssetAsync( StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite, ct: ct); } public static UniTask LoadTexture2DPNGAsync(string name, CancellationToken ct = default) { return ResManager.Instance.LoadAssetAsync( StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false, ct); } }