mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-07 16:45:10 +00:00
资源异步加载从缓存中延迟分帧处理。
This commit is contained in:
@@ -14,6 +14,7 @@ namespace TEngine
|
|||||||
internal sealed partial class ResourceManager : ModuleImp, IResourceManager
|
internal sealed partial class ResourceManager : ModuleImp, IResourceManager
|
||||||
{
|
{
|
||||||
#region Propreties
|
#region Propreties
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 资源包名称。
|
/// 资源包名称。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -582,6 +583,7 @@ namespace TEngine
|
|||||||
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
||||||
if (assetObject != null)
|
if (assetObject != null)
|
||||||
{
|
{
|
||||||
|
await UniTask.Yield();
|
||||||
callback?.Invoke(assetObject.Target as T);
|
callback?.Invoke(assetObject.Target as T);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -640,6 +642,7 @@ namespace TEngine
|
|||||||
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
||||||
if (assetObject != null)
|
if (assetObject != null)
|
||||||
{
|
{
|
||||||
|
await UniTask.Yield();
|
||||||
return assetObject.Target as T;
|
return assetObject.Target as T;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -676,6 +679,7 @@ namespace TEngine
|
|||||||
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
||||||
if (assetObject != null)
|
if (assetObject != null)
|
||||||
{
|
{
|
||||||
|
await UniTask.Yield();
|
||||||
return AssetsReference.Instantiate(assetObject.Target as GameObject, parent, this).gameObject;
|
return AssetsReference.Instantiate(assetObject.Target as GameObject, parent, this).gameObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -727,10 +731,13 @@ namespace TEngine
|
|||||||
|
|
||||||
await TryWaitingLoading(assetObjectKey);
|
await TryWaitingLoading(assetObjectKey);
|
||||||
|
|
||||||
|
float duration = Time.time;
|
||||||
|
|
||||||
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
||||||
if (assetObject != null)
|
if (assetObject != null)
|
||||||
{
|
{
|
||||||
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, 0, userData);
|
await UniTask.Yield();
|
||||||
|
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, Time.time - duration, userData);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -749,8 +756,6 @@ namespace TEngine
|
|||||||
|
|
||||||
throw new GameFrameworkException(errorMessage);
|
throw new GameFrameworkException(errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
float duration = Time.time;
|
|
||||||
|
|
||||||
AssetHandle handle = GetHandleAsync(location, assetType, packageName: packageName);
|
AssetHandle handle = GetHandleAsync(location, assetType, packageName: packageName);
|
||||||
|
|
||||||
@@ -814,10 +819,13 @@ namespace TEngine
|
|||||||
|
|
||||||
await TryWaitingLoading(assetObjectKey);
|
await TryWaitingLoading(assetObjectKey);
|
||||||
|
|
||||||
|
float duration = Time.time;
|
||||||
|
|
||||||
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
AssetObject assetObject = m_AssetPool.Spawn(assetObjectKey);
|
||||||
if (assetObject != null)
|
if (assetObject != null)
|
||||||
{
|
{
|
||||||
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, 0, userData);
|
await UniTask.Yield();
|
||||||
|
loadAssetCallbacks.LoadAssetSuccessCallback(location, assetObject.Target, Time.time - duration, userData);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -837,8 +845,6 @@ namespace TEngine
|
|||||||
throw new GameFrameworkException(errorMessage);
|
throw new GameFrameworkException(errorMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
float duration = Time.time;
|
|
||||||
|
|
||||||
AssetHandle handle = GetHandleAsync(location, assetInfo.AssetType, packageName: packageName);
|
AssetHandle handle = GetHandleAsync(location, assetInfo.AssetType, packageName: packageName);
|
||||||
|
|
||||||
if (loadAssetCallbacks.LoadAssetUpdateCallback != null)
|
if (loadAssetCallbacks.LoadAssetUpdateCallback != null)
|
||||||
|
Reference in New Issue
Block a user