Operation handles support error queries

操作句柄支持错误信息查询。
This commit is contained in:
hevinci
2022-04-24 18:30:35 +08:00
parent cbf142dbf8
commit 9bf22f2c79
19 changed files with 170 additions and 45 deletions
@@ -45,15 +45,23 @@ namespace YooAsset
if (OwnerBundle.IsDone() == false)
return;
if (OwnerBundle.CacheBundle == null)
if (DependBundles.IsSucceed() == false)
{
Status = EStatus.Fail;
LastError = DependBundles.GetLastError();
InvokeCompletion();
return;
}
else
if (OwnerBundle.Status != AssetBundleLoaderBase.EStatus.Succeed)
{
Status = EStatus.Loading;
Status = EStatus.Fail;
LastError = OwnerBundle.LastError;
InvokeCompletion();
return;
}
Status = EStatus.Loading;
}
// 2. 加载资源对象
@@ -97,7 +105,10 @@ namespace YooAsset
Status = AssetObject == null ? EStatus.Fail : EStatus.Success;
if (Status == EStatus.Fail)
YooLogger.Warning($"Failed to load asset : {AssetName} from bundle : {OwnerBundle.BundleFileInfo.BundleName}");
{
LastError = $"Failed to load asset : {AssetName} from bundle : {OwnerBundle.BundleFileInfo.BundleName}";
YooLogger.Error(LastError);
}
InvokeCompletion();
}
}
@@ -16,9 +16,9 @@ namespace YooAsset
DependBundles = new DependAssetBundleGrouper(assetPath);
DependBundles.Reference();
}
public override void Destory()
public override void Destroy()
{
base.Destory();
base.Destroy();
// 释放资源包
if (OwnerBundle != null)
@@ -46,15 +46,23 @@ namespace YooAsset
if (OwnerBundle.IsDone() == false)
return;
if (OwnerBundle.CacheBundle == null)
if (DependBundles.IsSucceed() == false)
{
Status = EStatus.Fail;
LastError = DependBundles.GetLastError();
InvokeCompletion();
return;
}
else
if (OwnerBundle.Status != AssetBundleLoaderBase.EStatus.Succeed)
{
Status = EStatus.Loading;
Status = EStatus.Fail;
LastError = OwnerBundle.LastError;
InvokeCompletion();
return;
}
Status = EStatus.Loading;
}
// 2. 加载场景
@@ -69,8 +77,9 @@ namespace YooAsset
}
else
{
YooLogger.Warning($"Failed to load scene : {AssetName}");
Status = EStatus.Fail;
LastError = $"Failed to load scene : {AssetName}";
YooLogger.Error(LastError);
InvokeCompletion();
}
}
@@ -85,6 +94,11 @@ namespace YooAsset
SceneManager.SetActiveScene(SceneObject);
Status = SceneObject.IsValid() ? EStatus.Success : EStatus.Fail;
if(Status == EStatus.Fail)
{
LastError = $"The load scene is invalid : {AssetPath}";
YooLogger.Error(LastError);
}
InvokeCompletion();
}
}
@@ -45,15 +45,23 @@ namespace YooAsset
if (OwnerBundle.IsDone() == false)
return;
if (OwnerBundle.CacheBundle == null)
if (DependBundles.IsSucceed() == false)
{
Status = EStatus.Fail;
LastError = DependBundles.GetLastError();
InvokeCompletion();
return;
}
else
if (OwnerBundle.Status != AssetBundleLoaderBase.EStatus.Succeed)
{
Status = EStatus.Loading;
Status = EStatus.Fail;
LastError = OwnerBundle.LastError;
InvokeCompletion();
return;
}
Status = EStatus.Loading;
}
// 2. 加载资源对象
@@ -97,7 +105,10 @@ namespace YooAsset
Status = AllAssetObjects == null ? EStatus.Fail : EStatus.Success;
if (Status == EStatus.Fail)
YooLogger.Warning($"Failed to load sub assets : {AssetName} from bundle : {OwnerBundle.BundleFileInfo.BundleName}");
{
LastError = $"Failed to load sub assets : {AssetName} from bundle : {OwnerBundle.BundleFileInfo.BundleName}";
YooLogger.Error(LastError);
}
InvokeCompletion();
}
}
@@ -34,6 +34,8 @@ namespace YooAsset
if (string.IsNullOrEmpty(guid))
{
Status = EStatus.Fail;
LastError = $"Not found asset : {AssetPath}";
YooLogger.Error(LastError);
InvokeCompletion();
return;
}
@@ -41,7 +43,7 @@ namespace YooAsset
{
Status = EStatus.Loading;
}
// 注意:模拟异步加载效果提前返回
if (IsWaitForAsyncComplete == false)
return;
@@ -59,7 +61,10 @@ namespace YooAsset
{
Status = AssetObject == null ? EStatus.Fail : EStatus.Success;
if (Status == EStatus.Fail)
YooLogger.Warning($"Failed to load asset object : {AssetPath}");
{
LastError = $"Failed to load asset object : {AssetPath}";
YooLogger.Error(LastError);
}
InvokeCompletion();
}
#endif
@@ -51,8 +51,9 @@ namespace YooAsset
}
else
{
YooLogger.Warning($"Failed to load scene : {AssetName}");
Status = EStatus.Fail;
LastError = $"Failed to load scene : {AssetPath}";
YooLogger.Error(LastError);
InvokeCompletion();
}
}
@@ -67,6 +68,11 @@ namespace YooAsset
SceneManager.SetActiveScene(SceneObject);
Status = SceneObject.IsValid() ? EStatus.Success : EStatus.Fail;
if (Status == EStatus.Fail)
{
LastError = $"The load scene is invalid : {AssetPath}";
YooLogger.Error(LastError);
}
InvokeCompletion();
}
}
@@ -34,6 +34,8 @@ namespace YooAsset
if (string.IsNullOrEmpty(guid))
{
Status = EStatus.Fail;
LastError = $"Not found asset : {AssetPath}";
YooLogger.Error(LastError);
InvokeCompletion();
return;
}
@@ -73,7 +75,10 @@ namespace YooAsset
{
Status = AllAssetObjects == null ? EStatus.Fail : EStatus.Success;
if (Status == EStatus.Fail)
YooLogger.Warning($"Failed to load sub assets : {AssetName}");
{
LastError = $"Failed to load sub assets : {nameof(AssetType)} in {AssetPath}";
YooLogger.Error(LastError);
}
InvokeCompletion();
}
#endif
@@ -53,6 +53,11 @@ namespace YooAsset
/// </summary>
public EStatus Status { protected set; get; } = EStatus.None;
/// <summary>
/// 最近的错误信息
/// </summary>
public string LastError { protected set; get; } = string.Empty;
/// <summary>
/// 引用计数
/// </summary>
@@ -105,7 +110,7 @@ namespace YooAsset
/// <summary>
/// 销毁资源对象
/// </summary>
public virtual void Destory()
public virtual void Destroy()
{
IsDestroyed = true;
}