From 51b0f6ed9f4e1d3bb6f8144470b46908c7699a96 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 11 五月 2026 16:20:37 +0800
Subject: [PATCH] Merge branch 'master' into h5version
---
Main/ResModule/UILoader.cs | 107 +++++++++++++++++++++++++++++------------------------
1 files changed, 58 insertions(+), 49 deletions(-)
diff --git a/Main/ResModule/UILoader.cs b/Main/ResModule/UILoader.cs
index 4cdbc95..7cb52fa 100644
--- a/Main/ResModule/UILoader.cs
+++ b/Main/ResModule/UILoader.cs
@@ -2,77 +2,86 @@
using System.Collections.Generic;
using UnityEngine;
using System;
-
+using Cysharp.Threading.Tasks;
+using System.Threading;
using System.IO;
using UnityEngine.U2D;
+using UnityEngine.UI;
public class UILoader
{
- public static GameObject LoadWindow(string name)
- {
- return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_WINDOW_SUFFIX, name);
- }
- public static GameObject LoadPrefab(string _name)
- {
- return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_PREFAB_SUFFIX, _name);
- }
+ // ====================================================================
+ // US2: Async UniTask variants
+ // ====================================================================
- public static void UnLoadPrefab(string _assetName)
+ public static async UniTask LoadSprite(string directory, string name, Image image)
{
- ResManager.Instance.UnloadAsset(ResourcesPath.UI_PREFAB_SUFFIX, _assetName);
- }
-
- //閫氳繃ICON琛ㄥ姞杞�
- public static Sprite LoadSprite(string _iconKey)
- {
- var iconConfig = IconConfig.Get(_iconKey);
- if (iconConfig == null)
+ var sprite = await LoadSpriteAsync(directory, name);
+ if (null != sprite)
{
- return null;
- }
-
- return LoadSprite(iconConfig.folder, iconConfig.sprite);
- }
-
- public static Sprite LoadSprite(string _folder, string _file)
- {
- return ResManager.Instance.LoadAsset<Sprite>(StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder), _file);
- }
-
- public static void UnLoadSprite(string _iconKey)
- {
- var iconConfig = IconConfig.Get(_iconKey);
- if (iconConfig != null)
- {
- var bundleName = StringUtility.Concat(ResourcesPath.UI_SPRITE_SUFFIX, "/", iconConfig.folder);
- ResManager.Instance.UnloadAsset(bundleName, iconConfig.sprite);
+ if (image != null)
+ {
+ image.overrideSprite = sprite;
+ }
}
}
- public static Font LoadFont(string _fontName)
+ public static async UniTask LoadSprite(string directory, string name, Image image, string failureName)
{
- return ResManager.Instance.LoadAsset<Font>(ResourcesPath.UI_FONT_SUFFIX, _fontName);
+ var sprite = await LoadSpriteAsync(directory, name);
+ if (image == null) return;
+ if (sprite != null)
+ {
+ image.overrideSprite = sprite;
+ }
+ else
+ {
+ image.SetSprite(failureName);
+ }
}
- public static void UnLoadFont(string _fontName)
+ public static UniTask<GameObject> LoadWindowAsync(string name, CancellationToken ct = default)
{
- ResManager.Instance.UnloadAsset(ResourcesPath.UI_FONT_SUFFIX, _fontName);
+ return ResManager.Instance.LoadAssetAsync<GameObject>(ResourcesPath.UI_WINDOW_SUFFIX, name, ct: ct);
}
- public static Texture2D LoadTexture2D(string _iconKey)
+ 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 ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite);
+ if (iconConfig == null) return null;
+ return await LoadSpriteAsync(iconConfig.folder, iconConfig.sprite, ct);
}
-
- public static Texture2D LoadTexture2DPNG(string name)
+
+ public static UniTask<Sprite> LoadSpriteAsync(string _folder, string _file, CancellationToken ct = default)
{
- return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false);
+ 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 async UniTask<Texture2D> LoadTexture2DPNGAsync(string name, CancellationToken ct = default)
+ {
+ var path = StringUtility.Concat(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg");
+ var result = await ResManager.Instance.LoadAssetAsync<Texture2D>(path, name + ".png", false, ct);
+ return result;
}
}
--
Gitblit v1.8.0