资源异步加载从缓存中延迟分帧处理。

This commit is contained in:
ALEXTANG
2024-04-07 15:33:45 +08:00
parent 4c34858ce0
commit d5bb64b314

View File

@@ -14,6 +14,7 @@ namespace TEngine
internal sealed partial class ResourceManager : ModuleImp, IResourceManager
{
#region Propreties
/// <summary>
/// 资源包名称。
/// </summary>
@@ -582,6 +583,7 @@ namespace TEngine
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
if (assetObject != null)
{
await UniTask.Yield();
callback?.Invoke(assetObject.Target as T);
return;
}
@@ -640,6 +642,7 @@ namespace TEngine
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
if (assetObject != null)
{
await UniTask.Yield();
return assetObject.Target as T;
}
@@ -676,6 +679,7 @@ namespace TEngine
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
if (assetObject != null)
{
await UniTask.Yield();
return AssetsReference.Instantiate(assetObject.Target as GameObject, parent, this).gameObject;
}
@@ -727,10 +731,13 @@ namespace TEngine
await TryWaitingLoading(assetObjectKey);
float duration = Time.time;
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
if (assetObject != null)
{
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, 0, userData);
await UniTask.Yield();
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, Time.time - duration, userData);
return;
}
@@ -750,8 +757,6 @@ namespace TEngine
throw new GameFrameworkException(errorMessage);
}
float duration = Time.time;
AssetHandle handle = GetHandleAsync(location, assetType, packageName: packageName);
if (loadAssetCallbacks.LoadAssetUpdateCallback != null)
@@ -814,10 +819,13 @@ namespace TEngine
await TryWaitingLoading(assetObjectKey);
float duration = Time.time;
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
if (assetObject != null)
{
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, 0, userData);
await UniTask.Yield();
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, Time.time - duration, userData);
return;
}
@@ -837,8 +845,6 @@ namespace TEngine
throw new GameFrameworkException(errorMessage);
}
float duration = Time.time;
AssetHandle handle = GetHandleAsync(location, assetInfo.AssetType, packageName: packageName);
if (loadAssetCallbacks.LoadAssetUpdateCallback != null)