调整 SpriteCache 的读取资源方式

将原来 UGF 事件回调风格的调用改成使用 UniTask 的异步操作
This commit is contained in:
2026-06-16 17:08:06 +08:00
parent 117dd123de
commit 170ea690b2
8 changed files with 88 additions and 83 deletions
@@ -1,4 +1,6 @@
using System;
using Cysharp.Threading.Tasks;
using GameFramework.Resource;
using UnityGameFramework.Runtime;
using ResourceApplySuccessEventArgs = UnityGameFramework.Runtime.ResourceApplySuccessEventArgs;
using ResourceUpdateAllCompleteEventArgs = UnityGameFramework.Runtime.ResourceUpdateAllCompleteEventArgs;
@@ -11,6 +13,24 @@ namespace SepCore.AsyncTask
/// </summary>
public static class ResourceAsyncExtension
{
/// <summary>
/// 异步加载资源
/// </summary>
/// <typeparam name="T">资源类型</typeparam>
/// <param name="resourceComponent">资源组件</param>
/// <param name="assetName">资源名称</param>
/// <param name="priority">加载优先级</param>
/// <returns>加载完成的资源</returns>
public static UniTask<T> LoadAssetAsync<T>(this ResourceComponent resourceComponent, string assetName, int priority = 0)
{
var tcs = AutoResetUniTaskCompletionSource<T>.Create();
resourceComponent.LoadAsset(assetName, priority, new LoadAssetCallbacks(
(_, asset, _, _) => tcs.TrySetResult((T)asset),
(_, _, errorMessage, _) => tcs.TrySetException(new Exception(errorMessage))
));
return tcs.Task;
}
/// <summary>
/// 异步等待资源更新完成
/// </summary>