mirror of
https://github.com/tuyoogame/YooAsset.git
synced 2026-05-14 19:40:47 +00:00
Update runtime logic
在初始化失败的时候,销毁YooAssets会报异常。
This commit is contained in:
@@ -73,15 +73,15 @@ namespace YooAsset
|
||||
{
|
||||
provider.Destroy();
|
||||
}
|
||||
_providers.Clear();
|
||||
|
||||
foreach (var loader in _loaders)
|
||||
{
|
||||
loader.Destroy(true);
|
||||
}
|
||||
|
||||
_providers.Clear();
|
||||
_loaders.Clear();
|
||||
ClearSceneHandle();
|
||||
|
||||
ClearSceneHandle();
|
||||
DecryptionServices = null;
|
||||
BundleServices = null;
|
||||
}
|
||||
@@ -298,19 +298,21 @@ namespace YooAsset
|
||||
internal void ClearSceneHandle()
|
||||
{
|
||||
// 释放资源包下的所有场景
|
||||
string packageName = BundleServices.GetPackageName();
|
||||
List<string> removeList = new List<string>();
|
||||
foreach (var valuePair in _sceneHandles)
|
||||
if (BundleServices.IsServicesValid())
|
||||
{
|
||||
if (valuePair.Value.PackageName == packageName)
|
||||
string packageName = BundleServices.GetPackageName();
|
||||
List<string> removeList = new List<string>();
|
||||
foreach (var valuePair in _sceneHandles)
|
||||
{
|
||||
removeList.Add(valuePair.Key);
|
||||
if (valuePair.Value.PackageName == packageName)
|
||||
{
|
||||
removeList.Add(valuePair.Key);
|
||||
}
|
||||
}
|
||||
foreach (var key in removeList)
|
||||
{
|
||||
_sceneHandles.Remove(key);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var key in removeList)
|
||||
{
|
||||
_sceneHandles.Remove(key);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ namespace YooAsset
|
||||
}
|
||||
private void ResetInitializeAfterFailed()
|
||||
{
|
||||
if(_isInitialize && _initializeStatus == EOperationStatus.Failed)
|
||||
if (_isInitialize && _initializeStatus == EOperationStatus.Failed)
|
||||
{
|
||||
_isInitialize = false;
|
||||
_initializeStatus = EOperationStatus.None;
|
||||
|
||||
@@ -78,6 +78,10 @@ namespace YooAsset
|
||||
{
|
||||
return _simulatePatchManifest.IsIncludeBundleFile(fileName);
|
||||
}
|
||||
bool IBundleServices.IsServicesValid()
|
||||
{
|
||||
return _simulatePatchManifest != null;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -428,6 +428,10 @@ namespace YooAsset
|
||||
{
|
||||
return LocalPatchManifest.IsIncludeBundleFile(fileName);
|
||||
}
|
||||
bool IBundleServices.IsServicesValid()
|
||||
{
|
||||
return LocalPatchManifest != null;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -129,6 +129,10 @@ namespace YooAsset
|
||||
{
|
||||
return _appPatchManifest.IsIncludeBundleFile(fileName);
|
||||
}
|
||||
bool IBundleServices.IsServicesValid()
|
||||
{
|
||||
return _appPatchManifest != null;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
namespace YooAsset
|
||||
{
|
||||
internal interface IBundleServices
|
||||
{
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取资源包信息
|
||||
/// </summary>
|
||||
@@ -42,5 +42,10 @@ namespace YooAsset
|
||||
/// 是否包含资源文件
|
||||
/// </summary>
|
||||
bool IsIncludeBundleFile(string fileName);
|
||||
|
||||
/// <summary>
|
||||
/// 服务接口是否有效
|
||||
/// </summary>
|
||||
bool IsServicesValid();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user