diff --git a/Assets/YooAsset/Runtime/FileSystem/BundleResult/AssetBundleResult/AssetBundleResult.cs b/Assets/YooAsset/Runtime/FileSystem/BundleResult/AssetBundleResult/AssetBundleResult.cs
index 813587ac..587674ff 100644
--- a/Assets/YooAsset/Runtime/FileSystem/BundleResult/AssetBundleResult/AssetBundleResult.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/BundleResult/AssetBundleResult/AssetBundleResult.cs
@@ -48,25 +48,21 @@ namespace YooAsset
public override FSLoadAssetOperation LoadAssetAsync(AssetInfo assetInfo)
{
var operation = new AssetBundleLoadAssetOperation(_packageBundle, _assetBundle, assetInfo);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadAllAssetsOperation LoadAllAssetsAsync(AssetInfo assetInfo)
{
var operation = new AssetBundleLoadAllAssetsOperation(_packageBundle, _assetBundle, assetInfo);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadSubAssetsOperation LoadSubAssetsAsync(AssetInfo assetInfo)
{
var operation = new AssetBundleLoadSubAssetsOperation(_packageBundle, _assetBundle, assetInfo);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadSceneOperation LoadSceneOperation(AssetInfo assetInfo, LoadSceneParameters loadParams, bool suspendLoad)
{
var operation = new AssetBundleLoadSceneOperation(assetInfo, loadParams, suspendLoad);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/BundleResult/RawBundleResult/RawBundleResult.cs b/Assets/YooAsset/Runtime/FileSystem/BundleResult/RawBundleResult/RawBundleResult.cs
index 951ff8f9..6a42ddc2 100644
--- a/Assets/YooAsset/Runtime/FileSystem/BundleResult/RawBundleResult/RawBundleResult.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/BundleResult/RawBundleResult/RawBundleResult.cs
@@ -32,25 +32,21 @@ namespace YooAsset
public override FSLoadAssetOperation LoadAssetAsync(AssetInfo assetInfo)
{
var operation = new RawBundleLoadAssetOperation();
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadAllAssetsOperation LoadAllAssetsAsync(AssetInfo assetInfo)
{
var operation = new RawBundleLoadAllAssetsOperation();
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadSubAssetsOperation LoadSubAssetsAsync(AssetInfo assetInfo)
{
var operation = new RawBundleLoadSubAssetsOperation();
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadSceneOperation LoadSceneOperation(AssetInfo assetInfo, LoadSceneParameters loadParams, bool suspendLoad)
{
var operation = new RawBundleLoadSceneOperation();
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/BundleResult/VirtualBundleResult/VirtualBundleResult.cs b/Assets/YooAsset/Runtime/FileSystem/BundleResult/VirtualBundleResult/VirtualBundleResult.cs
index 32aecadd..3ed31901 100644
--- a/Assets/YooAsset/Runtime/FileSystem/BundleResult/VirtualBundleResult/VirtualBundleResult.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/BundleResult/VirtualBundleResult/VirtualBundleResult.cs
@@ -32,25 +32,21 @@ namespace YooAsset
public override FSLoadAssetOperation LoadAssetAsync(AssetInfo assetInfo)
{
var operation = new VirtualBundleLoadAssetOperation(_packageBundle, assetInfo);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadAllAssetsOperation LoadAllAssetsAsync(AssetInfo assetInfo)
{
var operation = new VirtualBundleLoadAllAssetsOperation(_packageBundle, assetInfo);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadSubAssetsOperation LoadSubAssetsAsync(AssetInfo assetInfo)
{
var operation = new VirtualBundleLoadSubAssetsOperation(_packageBundle, assetInfo);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
public override FSLoadSceneOperation LoadSceneOperation(AssetInfo assetInfo, LoadSceneParameters loadParams, bool suspendLoad)
{
var operation = new VirtualBundleLoadSceneOperation(assetInfo, loadParams, suspendLoad);
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
return operation;
}
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs
index 86c81f98..56d1ef5e 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs
@@ -92,19 +92,16 @@ namespace YooAsset
public virtual FSInitializeFileSystemOperation InitializeFileSystemAsync()
{
var operation = new DBFSInitializeOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout)
{
var operation = new DBFSLoadPackageManifestOperation(this, packageVersion);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
{
var operation = new DBFSRequestPackageVersionOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam)
@@ -127,20 +124,17 @@ namespace YooAsset
if (bundle.BundleType == (int)EBuildBundleType.AssetBundle)
{
var operation = new DBFSLoadAssetBundleOperation(this, bundle);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else if (bundle.BundleType == (int)EBuildBundleType.RawBundle)
{
var operation = new DBFSLoadRawBundleOperation(this, bundle);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else
{
string error = $"{nameof(DefaultBuildinFileSystem)} not support load bundle type : {bundle.BundleType}";
var operation = new FSLoadBundleCompleteOperation(error);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
}
@@ -194,9 +188,8 @@ namespace YooAsset
_unpackFileSystem.SetParameter(FileSystemParametersDefine.DECRYPTION_SERVICES, DecryptionServices);
_unpackFileSystem.OnCreate(packageName, null);
}
- public virtual void OnUpdate()
+ public virtual void OnDestroy()
{
- _unpackFileSystem.OnUpdate();
}
public virtual bool Belong(PackageBundle bundle)
@@ -346,10 +339,13 @@ namespace YooAsset
return false;
#if UNITY_ANDROID
- if (bundle.BundleType == (int)EBuildBundleType.RawBundle || bundle.Encrypted)
+ if (bundle.Encrypted)
return true;
- else
- return false;
+
+ if (bundle.BundleType == (int)EBuildBundleType.RawBundle)
+ return true;
+
+ return false;
#else
return false;
#endif
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs
index e2e2e5b4..2cc48f3a 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSInitializeOperation.cs
@@ -47,9 +47,11 @@ namespace YooAsset
if (_copyBuildinPackageManifestOp == null)
{
_copyBuildinPackageManifestOp = new CopyBuildinPackageManifestOperation(_fileSystem);
- OperationSystem.StartOperation(_fileSystem.PackageName, _copyBuildinPackageManifestOp);
+ _copyBuildinPackageManifestOp.StartOperation();
+ AddChildOperation(_copyBuildinPackageManifestOp);
}
+ _copyBuildinPackageManifestOp.UpdateOperation();
if (_copyBuildinPackageManifestOp.IsDone == false)
return;
@@ -68,8 +70,13 @@ namespace YooAsset
if (_steps == ESteps.InitUnpackFileSystem)
{
if (_initUnpackFIleSystemOp == null)
+ {
_initUnpackFIleSystemOp = _fileSystem.InitializeUpackFileSystem();
+ _initUnpackFIleSystemOp.StartOperation();
+ AddChildOperation(_initUnpackFIleSystemOp);
+ }
+ _initUnpackFIleSystemOp.UpdateOperation();
Progress = _initUnpackFIleSystemOp.Progress;
if (_initUnpackFIleSystemOp.IsDone == false)
return;
@@ -113,9 +120,11 @@ namespace YooAsset
#endif
_loadCatalogFileOp = new LoadBuildinCatalogFileOperation(_fileSystem);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadCatalogFileOp);
+ _loadCatalogFileOp.StartOperation();
+ AddChildOperation(_loadCatalogFileOp);
}
+ _loadCatalogFileOp.UpdateOperation();
if (_loadCatalogFileOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs
index 2a42e6b4..296763e8 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs
@@ -139,9 +139,6 @@ namespace YooAsset
}
}
}
- public override void AbortDownloadOperation()
- {
- }
}
///
@@ -206,8 +203,5 @@ namespace YooAsset
}
}
}
- public override void AbortDownloadOperation()
- {
- }
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadPackageManifestOperation.cs
index 0f5e9a83..0aa56daf 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadPackageManifestOperation.cs
@@ -37,9 +37,11 @@ namespace YooAsset
if (_requestBuildinPackageHashOp == null)
{
_requestBuildinPackageHashOp = new RequestBuildinPackageHashOperation(_fileSystem, _packageVersion);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestBuildinPackageHashOp);
+ _requestBuildinPackageHashOp.StartOperation();
+ AddChildOperation(_requestBuildinPackageHashOp);
}
+ _requestBuildinPackageHashOp.UpdateOperation();
if (_requestBuildinPackageHashOp.IsDone == false)
return;
@@ -61,9 +63,11 @@ namespace YooAsset
{
string packageHash = _requestBuildinPackageHashOp.PackageHash;
_loadBuildinPackageManifestOp = new LoadBuildinPackageManifestOperation(_fileSystem, _packageVersion, packageHash);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadBuildinPackageManifestOp);
+ _loadBuildinPackageManifestOp.StartOperation();
+ AddChildOperation(_loadBuildinPackageManifestOp);
}
+ _loadBuildinPackageManifestOp.UpdateOperation();
if (_loadBuildinPackageManifestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSRequestPackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSRequestPackageVersionOperation.cs
index b5918cb5..24b4a6e8 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSRequestPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSRequestPackageVersionOperation.cs
@@ -33,9 +33,11 @@ namespace YooAsset
if (_requestBuildinPackageVersionOp == null)
{
_requestBuildinPackageVersionOp = new RequestBuildinPackageVersionOperation(_fileSystem);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestBuildinPackageVersionOp);
+ _requestBuildinPackageVersionOp.StartOperation();
+ AddChildOperation(_requestBuildinPackageVersionOp);
}
+ _requestBuildinPackageVersionOp.UpdateOperation();
if (_requestBuildinPackageVersionOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs
index c8ceebd3..67f16f13 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/CopyBuildinPackageManifestOperation.cs
@@ -43,9 +43,11 @@ namespace YooAsset
if (_requestBuildinPackageVersionOp == null)
{
_requestBuildinPackageVersionOp = new RequestBuildinPackageVersionOperation(_fileSystem);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestBuildinPackageVersionOp);
+ _requestBuildinPackageVersionOp.StartOperation();
+ AddChildOperation(_requestBuildinPackageVersionOp);
}
+ _requestBuildinPackageVersionOp.UpdateOperation();
if (_requestBuildinPackageVersionOp.IsDone == false)
return;
@@ -82,9 +84,11 @@ namespace YooAsset
string destPath = GetCopyPackageHashDestPath(_buildinPackageVersion);
string url = DownloadSystemHelper.ConvertToWWWPath(sourcePath);
_hashFileRequestOp = new UnityWebFileRequestOperation(url, destPath);
- OperationSystem.StartOperation(_fileSystem.PackageName, _hashFileRequestOp);
+ _hashFileRequestOp.StartOperation();
+ AddChildOperation(_hashFileRequestOp);
}
+ _hashFileRequestOp.UpdateOperation();
if (_hashFileRequestOp.IsDone == false)
return;
@@ -121,9 +125,11 @@ namespace YooAsset
string destPath = GetCopyPackageManifestDestPath(_buildinPackageVersion);
string url = DownloadSystemHelper.ConvertToWWWPath(sourcePath);
_manifestFileRequestOp = new UnityWebFileRequestOperation(url, destPath);
- OperationSystem.StartOperation(_fileSystem.PackageName, _manifestFileRequestOp);
+ _manifestFileRequestOp.StartOperation();
+ AddChildOperation(_manifestFileRequestOp);
}
+ _manifestFileRequestOp.UpdateOperation();
if (_manifestFileRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/LoadBuildinPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/LoadBuildinPackageManifestOperation.cs
index f303a0ed..06429a8a 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/LoadBuildinPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/LoadBuildinPackageManifestOperation.cs
@@ -47,9 +47,11 @@ namespace YooAsset
string filePath = _fileSystem.GetBuildinPackageManifestFilePath(_packageVersion);
string url = DownloadSystemHelper.ConvertToWWWPath(filePath);
_webDataRequestOp = new UnityWebDataRequestOperation(url);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webDataRequestOp);
+ _webDataRequestOp.StartOperation();
+ AddChildOperation(_webDataRequestOp);
}
+ _webDataRequestOp.UpdateOperation();
if (_webDataRequestOp.IsDone == false)
return;
@@ -85,9 +87,11 @@ namespace YooAsset
if (_deserializer == null)
{
_deserializer = new DeserializeManifestOperation(_webDataRequestOp.Result);
- OperationSystem.StartOperation(_fileSystem.PackageName, _deserializer);
+ _deserializer.StartOperation();
+ AddChildOperation(_deserializer);
}
+ _deserializer.UpdateOperation();
Progress = _deserializer.Progress;
if (_deserializer.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageHashOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageHashOperation.cs
index 31cf75b2..5fdfefda 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageHashOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageHashOperation.cs
@@ -42,9 +42,11 @@ namespace YooAsset
string filePath = _fileSystem.GetBuildinPackageHashFilePath(_packageVersion);
string url = DownloadSystemHelper.ConvertToWWWPath(filePath);
_webTextRequestOp = new UnityWebTextRequestOperation(url);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webTextRequestOp);
+ _webTextRequestOp.StartOperation();
+ AddChildOperation(_webTextRequestOp);
}
+ _webTextRequestOp.UpdateOperation();
if (_webTextRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageVersionOperation.cs
index a0de67ca..b70598cb 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/internal/RequestBuildinPackageVersionOperation.cs
@@ -40,9 +40,11 @@ namespace YooAsset
string filePath = _fileSystem.GetBuildinPackageVersionFilePath();
string url = DownloadSystemHelper.ConvertToWWWPath(filePath);
_webTextRequestOp = new UnityWebTextRequestOperation(url);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webTextRequestOp);
+ _webTextRequestOp.StartOperation();
+ AddChildOperation(_webTextRequestOp);
}
+ _webTextRequestOp.UpdateOperation();
if (_webTextRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs
index 17939118..ddf93e3e 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs
@@ -15,13 +15,18 @@ namespace YooAsset
protected readonly Dictionary _bundleDataFilePathMapping = new Dictionary(10000);
protected readonly Dictionary _bundleInfoFilePathMapping = new Dictionary(10000);
protected readonly Dictionary _tempFilePathMapping = new Dictionary(10000);
- protected DefaultCacheDownloadCenter _downloadCenter;
protected string _packageRoot;
protected string _tempFilesRoot;
protected string _cacheBundleFilesRoot;
protected string _cacheManifestFilesRoot;
+ ///
+ /// 下载中心
+ /// 说明:当异步操作任务终止的时候,所有下载子任务都会一同被终止!
+ ///
+ public DownloadCenterOperation DownloadCenter { set; get; }
+
///
/// 包裹名称
///
@@ -98,19 +103,16 @@ namespace YooAsset
public virtual FSInitializeFileSystemOperation InitializeFileSystemAsync()
{
var operation = new DCFSInitializeOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout)
{
var operation = new DCFSLoadPackageManifestOperation(this, packageVersion, timeout);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
{
var operation = new DCFSRequestPackageVersionOperation(this, appendTimeTicks, timeout);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam)
@@ -118,64 +120,57 @@ namespace YooAsset
if (clearMode == EFileClearMode.ClearAllBundleFiles.ToString())
{
var operation = new ClearAllCacheBundleFilesOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else if (clearMode == EFileClearMode.ClearUnusedBundleFiles.ToString())
{
var operation = new ClearUnusedCacheBundleFilesOperation(this, manifest);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else if (clearMode == EFileClearMode.ClearBundleFilesByTags.ToString())
{
var operation = new ClearCacheBundleFilesByTagsOperaiton(this, manifest, clearParam);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else if (clearMode == EFileClearMode.ClearAllManifestFiles.ToString())
{
var operation = new ClearAllCacheManifestFilesOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else if (clearMode == EFileClearMode.ClearUnusedManifestFiles.ToString())
{
var operation = new ClearUnusedCacheManifestFilesOperation(this, manifest);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else
{
string error = $"Invalid clear mode : {clearMode}";
var operation = new FSClearCacheFilesCompleteOperation(error);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
}
public virtual FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param)
{
- return _downloadCenter.DownloadFileAsync(bundle, param);
+ var downloader = DownloadCenter.DownloadFileAsync(bundle, param);
+ downloader.Reference(); //增加下载器的引用计数
+ return downloader;
}
public virtual FSLoadBundleOperation LoadBundleFile(PackageBundle bundle)
{
if (bundle.BundleType == (int)EBuildBundleType.AssetBundle)
{
var operation = new DCFSLoadAssetBundleOperation(this, bundle);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else if (bundle.BundleType == (int)EBuildBundleType.RawBundle)
{
var operation = new DCFSLoadRawBundleOperation(this, bundle);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else
{
string error = $"{nameof(DefaultCacheFileSystem)} not support load bundle type : {bundle.BundleType}";
var operation = new FSLoadBundleCompleteOperation(error);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
}
@@ -231,11 +226,14 @@ namespace YooAsset
_cacheBundleFilesRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.BundleFilesFolderName);
_tempFilesRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.TempFilesFolderName);
_cacheManifestFilesRoot = PathUtility.Combine(_packageRoot, DefaultCacheFileSystemDefine.ManifestFilesFolderName);
- _downloadCenter = new DefaultCacheDownloadCenter(this);
}
- public virtual void OnUpdate()
+ public virtual void OnDestroy()
{
- _downloadCenter.Update();
+ if (DownloadCenter != null)
+ {
+ DownloadCenter.AbortOperation();
+ DownloadCenter = null;
+ }
}
public virtual bool Belong(PackageBundle bundle)
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs
index 928f607c..7e84a1b3 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSInitializeOperation.cs
@@ -9,6 +9,7 @@ namespace YooAsset
CheckAppFootPrint,
SearchCacheFiles,
VerifyCacheFiles,
+ CreateDownloadCenter,
Done,
}
@@ -58,9 +59,11 @@ namespace YooAsset
if (_searchCacheFilesOp == null)
{
_searchCacheFilesOp = new SearchCacheFilesOperation(_fileSystem);
- OperationSystem.StartOperation(_fileSystem.PackageName, _searchCacheFilesOp);
+ _searchCacheFilesOp.StartOperation();
+ AddChildOperation(_searchCacheFilesOp);
}
+ _searchCacheFilesOp.UpdateOperation();
Progress = _searchCacheFilesOp.Progress;
if (_searchCacheFilesOp.IsDone == false)
return;
@@ -73,17 +76,18 @@ namespace YooAsset
if (_verifyCacheFilesOp == null)
{
_verifyCacheFilesOp = new VerifyCacheFilesOperation(_fileSystem, _searchCacheFilesOp.Result);
- OperationSystem.StartOperation(_fileSystem.PackageName, _verifyCacheFilesOp);
+ _verifyCacheFilesOp.StartOperation();
+ AddChildOperation(_verifyCacheFilesOp);
}
+ _verifyCacheFilesOp.UpdateOperation();
Progress = _verifyCacheFilesOp.Progress;
if (_verifyCacheFilesOp.IsDone == false)
return;
if (_verifyCacheFilesOp.Status == EOperationStatus.Succeed)
{
- _steps = ESteps.Done;
- Status = EOperationStatus.Succeed;
+ _steps = ESteps.CreateDownloadCenter;
YooLogger.Log($"Package '{_fileSystem.PackageName}' cached files count : {_fileSystem.FileCount}");
}
else
@@ -93,6 +97,18 @@ namespace YooAsset
Error = _verifyCacheFilesOp.Error;
}
}
+
+ if (_steps == ESteps.CreateDownloadCenter)
+ {
+ if (_fileSystem.DownloadCenter == null)
+ {
+ _fileSystem.DownloadCenter = new DownloadCenterOperation(_fileSystem);
+ OperationSystem.StartOperation(_fileSystem.PackageName, _fileSystem.DownloadCenter);
+ }
+
+ _steps = ESteps.Done;
+ Status = EOperationStatus.Succeed;
+ }
}
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
index 8e4c3965..f4651558 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
@@ -54,6 +54,9 @@ namespace YooAsset
if (_steps == ESteps.DownloadFile)
{
+ // 注意:下载的异步任务由管理器驱动
+ // 注意:不加到子任务列表里,防止Abort的时候将下载器直接关闭!
+ // 注意:边玩边下下载器引用计数没有Release
if (_downloadFileOp == null)
{
DownloadParam downloadParam = new DownloadParam(int.MaxValue, 60);
@@ -219,14 +222,6 @@ namespace YooAsset
}
}
}
- public override void AbortDownloadOperation()
- {
- if (_steps == ESteps.DownloadFile)
- {
- if (_downloadFileOp != null)
- _downloadFileOp.SetAbort();
- }
- }
}
internal class DCFSLoadRawBundleOperation : FSLoadBundleOperation
@@ -276,6 +271,9 @@ namespace YooAsset
if (_steps == ESteps.DownloadFile)
{
+ // 注意:下载的异步任务由管理器驱动
+ // 注意:不加到子任务列表里,防止Abort的时候将下载器直接关闭!
+ // 注意:边玩边下下载器引用计数没有Release
if (_downloadFileOp == null)
{
DownloadParam downloadParam = new DownloadParam(int.MaxValue, 60);
@@ -335,13 +333,5 @@ namespace YooAsset
}
}
}
- public override void AbortDownloadOperation()
- {
- if (_steps == ESteps.DownloadFile)
- {
- if (_downloadFileOp != null)
- _downloadFileOp.SetAbort();
- }
- }
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadPackageManifestOperation.cs
index b90232ee..6b30db83 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadPackageManifestOperation.cs
@@ -44,9 +44,11 @@ namespace YooAsset
if (_downloadPackageHashOp == null)
{
_downloadPackageHashOp = new DownloadPackageHashOperation(_fileSystem, _packageVersion, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _downloadPackageHashOp);
+ _downloadPackageHashOp.StartOperation();
+ AddChildOperation(_downloadPackageHashOp);
}
+ _downloadPackageHashOp.UpdateOperation();
if (_downloadPackageHashOp.IsDone == false)
return;
@@ -67,9 +69,11 @@ namespace YooAsset
if (_downloadPackageManifestOp == null)
{
_downloadPackageManifestOp = new DownloadPackageManifestOperation(_fileSystem, _packageVersion, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _downloadPackageManifestOp);
+ _downloadPackageManifestOp.StartOperation();
+ AddChildOperation(_downloadPackageManifestOp);
}
+ _downloadPackageManifestOp.UpdateOperation();
if (_downloadPackageManifestOp.IsDone == false)
return;
@@ -90,9 +94,11 @@ namespace YooAsset
if (_loadCachePackageHashOp == null)
{
_loadCachePackageHashOp = new LoadCachePackageHashOperation(_fileSystem, _packageVersion);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadCachePackageHashOp);
+ _loadCachePackageHashOp.StartOperation();
+ AddChildOperation(_loadCachePackageHashOp);
}
+ _loadCachePackageHashOp.UpdateOperation();
if (_loadCachePackageHashOp.IsDone == false)
return;
@@ -115,9 +121,11 @@ namespace YooAsset
{
string packageHash = _loadCachePackageHashOp.PackageHash;
_loadCachePackageManifestOp = new LoadCachePackageManifestOperation(_fileSystem, _packageVersion, packageHash);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadCachePackageManifestOp);
+ _loadCachePackageManifestOp.StartOperation();
+ AddChildOperation(_loadCachePackageManifestOp);
}
+ _loadCachePackageManifestOp.UpdateOperation();
Progress = _loadCachePackageManifestOp.Progress;
if (_loadCachePackageManifestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSRequestPackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSRequestPackageVersionOperation.cs
index 7c72e30f..ac68534b 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSRequestPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSRequestPackageVersionOperation.cs
@@ -37,9 +37,11 @@ namespace YooAsset
if (_requestRemotePackageVersionOp == null)
{
_requestRemotePackageVersionOp = new RequestRemotePackageVersionOperation(_fileSystem, _appendTimeTicks, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestRemotePackageVersionOp);
+ _requestRemotePackageVersionOp.StartOperation();
+ AddChildOperation(_requestRemotePackageVersionOp);
}
+ _requestRemotePackageVersionOp.UpdateOperation();
Progress = _requestRemotePackageVersionOp.Progress;
if (_requestRemotePackageVersionOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadCenterOperation.cs
similarity index 89%
rename from Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs
rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadCenterOperation.cs
index d4dd78cf..09fa9514 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadCenterOperation.cs
@@ -3,33 +3,33 @@ using System.Collections.Generic;
namespace YooAsset
{
- internal class DefaultCacheDownloadCenter
+ internal class DownloadCenterOperation : AsyncOperationBase
{
private readonly DefaultCacheFileSystem _fileSystem;
protected readonly Dictionary _downloaders = new Dictionary(1000);
protected readonly List _removeDownloadList = new List(1000);
- public DefaultCacheDownloadCenter(DefaultCacheFileSystem fileSystem)
+ public DownloadCenterOperation(DefaultCacheFileSystem fileSystem)
{
_fileSystem = fileSystem;
}
-
- ///
- /// 更新下载中心
- ///
- public void Update()
+ internal override void InternalStart()
+ {
+ }
+ internal override void InternalUpdate()
{
// 获取可移除的下载器集合
_removeDownloadList.Clear();
foreach (var valuePair in _downloaders)
{
var downloader = valuePair.Value;
+ downloader.UpdateOperation();
// 注意:主动终止引用计数为零的下载任务
if (downloader.RefCount <= 0)
{
_removeDownloadList.Add(valuePair.Key);
- downloader.SetAbort();
+ downloader.AbortOperation();
continue;
}
@@ -61,7 +61,7 @@ namespace YooAsset
var operation = operationPair.Value;
if (operation.Status == EOperationStatus.None)
{
- OperationSystem.StartOperation(_fileSystem.PackageName, operation);
+ operation.StartOperation();
startCount--;
if (startCount <= 0)
break;
@@ -79,7 +79,6 @@ namespace YooAsset
// 查询旧的下载器
if (_downloaders.TryGetValue(bundle.BundleGUID, out var oldDownloader))
{
- oldDownloader.Reference();
return oldDownloader;
}
@@ -101,13 +100,13 @@ namespace YooAsset
if (bundle.FileSize >= _fileSystem.ResumeDownloadMinimumSize)
{
newDownloader = new DownloadResumeFileOperation(_fileSystem, bundle, param);
- newDownloader.Reference();
+ AddChildOperation(newDownloader);
_downloaders.Add(bundle.BundleGUID, newDownloader);
}
else
{
newDownloader = new DownloadNormalFileOperation(_fileSystem, bundle, param);
- newDownloader.Reference();
+ AddChildOperation(newDownloader);
_downloaders.Add(bundle.BundleGUID, newDownloader);
}
return newDownloader;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs.meta b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadCenterOperation.cs.meta
similarity index 100%
rename from Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheDownloadCenter.cs.meta
rename to Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadCenterOperation.cs.meta
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs
index 25819600..890ce178 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadNormalFileOperation.cs
@@ -89,7 +89,8 @@ namespace YooAsset
{
var element = new TempFileElement(_tempFilePath, Bundle.FileCRC, Bundle.FileSize);
_verifyOperation = new VerifyTempFileOperation(element);
- OperationSystem.StartOperation(_fileSystem.PackageName, _verifyOperation);
+ _verifyOperation.StartOperation();
+ AddChildOperation(_verifyOperation);
_steps = ESteps.CheckVerifyTempFile;
}
@@ -99,6 +100,7 @@ namespace YooAsset
if (IsWaitForAsyncComplete)
_verifyOperation.WaitForAsyncComplete();
+ _verifyOperation.UpdateOperation();
if (_verifyOperation.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageHashOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageHashOperation.cs
index d30dded8..0189e95a 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageHashOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageHashOperation.cs
@@ -58,9 +58,11 @@ namespace YooAsset
string fileName = YooAssetSettingsData.GetPackageHashFileName(_fileSystem.PackageName, _packageVersion);
string webURL = GetWebRequestURL(fileName);
_webFileRequestOp = new UnityWebFileRequestOperation(webURL, savePath, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webFileRequestOp);
+ _webFileRequestOp.StartOperation();
+ AddChildOperation(_webFileRequestOp);
}
+ _webFileRequestOp.UpdateOperation();
if (_webFileRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageManifestOperation.cs
index 3258a6da..f4805f97 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadPackageManifestOperation.cs
@@ -58,9 +58,11 @@ namespace YooAsset
string fileName = YooAssetSettingsData.GetManifestBinaryFileName(_fileSystem.PackageName, _packageVersion);
string webURL = GetDownloadRequestURL(fileName);
_webFileRequestOp = new UnityWebFileRequestOperation(webURL, savePath, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webFileRequestOp);
+ _webFileRequestOp.StartOperation();
+ AddChildOperation(_webFileRequestOp);
}
+ _webFileRequestOp.UpdateOperation();
if (_webFileRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs
index e892c2bc..2cca18c2 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/DownloadResumeFileOperation.cs
@@ -110,7 +110,8 @@ namespace YooAsset
{
var element = new TempFileElement(_tempFilePath, Bundle.FileCRC, Bundle.FileSize);
_verifyOperation = new VerifyTempFileOperation(element);
- OperationSystem.StartOperation(_fileSystem.PackageName, _verifyOperation);
+ _verifyOperation.StartOperation();
+ AddChildOperation(_verifyOperation);
_steps = ESteps.CheckVerifyTempFile;
}
@@ -120,6 +121,7 @@ namespace YooAsset
if (IsWaitForAsyncComplete)
_verifyOperation.WaitForAsyncComplete();
+ _verifyOperation.UpdateOperation();
if (_verifyOperation.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/LoadCachePackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/LoadCachePackageManifestOperation.cs
index b846a7f4..bb78c060 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/LoadCachePackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/LoadCachePackageManifestOperation.cs
@@ -77,9 +77,11 @@ namespace YooAsset
if (_deserializer == null)
{
_deserializer = new DeserializeManifestOperation(_fileData);
- OperationSystem.StartOperation(_fileSystem.PackageName, _deserializer);
+ _deserializer.StartOperation();
+ AddChildOperation(_deserializer);
}
+ _deserializer.UpdateOperation();
Progress = _deserializer.Progress;
if (_deserializer.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/RequestRemotePackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/RequestRemotePackageVersionOperation.cs
index 12938fe4..1c8e4df7 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/RequestRemotePackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/internal/RequestRemotePackageVersionOperation.cs
@@ -46,9 +46,11 @@ namespace YooAsset
string fileName = YooAssetSettingsData.GetPackageVersionFileName(_fileSystem.PackageName);
string url = GetWebRequestURL(fileName);
_webTextRequestOp = new UnityWebTextRequestOperation(url, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webTextRequestOp);
+ _webTextRequestOp.StartOperation();
+ AddChildOperation(_webTextRequestOp);
}
+ _webTextRequestOp.UpdateOperation();
Progress = _webTextRequestOp.Progress;
if (_webTextRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs
index 0736905e..f867e723 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/DefaultEditorFileSystem.cs
@@ -54,25 +54,21 @@ namespace YooAsset
public virtual FSInitializeFileSystemOperation InitializeFileSystemAsync()
{
var operation = new DEFSInitializeOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout)
{
var operation = new DEFSLoadPackageManifestOperation(this, packageVersion);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
{
var operation = new DEFSRequestPackageVersionOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam)
{
var operation = new FSClearCacheFilesCompleteOperation();
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param)
@@ -84,14 +80,12 @@ namespace YooAsset
if (bundle.BundleType == (int)EBuildBundleType.VirtualBundle)
{
var operation = new DEFSLoadBundleOperation(this, bundle);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else
{
string error = $"{nameof(DefaultEditorFileSystem)} not support load bundle type : {bundle.BundleType}";
var operation = new FSLoadBundleCompleteOperation(error);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
}
@@ -120,7 +114,7 @@ namespace YooAsset
_packageRoot = packageRoot;
}
- public virtual void OnUpdate()
+ public virtual void OnDestroy()
{
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadBundleOperation.cs
index c116146c..8edfc97b 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadBundleOperation.cs
@@ -72,8 +72,5 @@ namespace YooAsset
}
}
}
- public override void AbortDownloadOperation()
- {
- }
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadPackageManifestOperation.cs
index 7afef5ca..02f838fd 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSLoadPackageManifestOperation.cs
@@ -37,9 +37,11 @@ namespace YooAsset
if (_loadEditorPackageHashOpe == null)
{
_loadEditorPackageHashOpe = new LoadEditorPackageHashOperation(_fileSystem, _packageVersion);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadEditorPackageHashOpe);
+ _loadEditorPackageHashOpe.StartOperation();
+ AddChildOperation(_loadEditorPackageHashOpe);
}
+ _loadEditorPackageHashOpe.UpdateOperation();
if (_loadEditorPackageHashOpe.IsDone == false)
return;
@@ -61,9 +63,11 @@ namespace YooAsset
{
string packageHash = _loadEditorPackageHashOpe.PackageHash;
_loadEditorPackageManifestOp = new LoadEditorPackageManifestOperation(_fileSystem, _packageVersion, packageHash);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadEditorPackageManifestOp);
+ _loadEditorPackageManifestOp.StartOperation();
+ AddChildOperation(_loadEditorPackageManifestOp);
}
+ _loadEditorPackageManifestOp.UpdateOperation();
Progress = _loadEditorPackageManifestOp.Progress;
if (_loadEditorPackageManifestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSRequestPackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSRequestPackageVersionOperation.cs
index 45166057..ac34873a 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSRequestPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/DEFSRequestPackageVersionOperation.cs
@@ -33,9 +33,11 @@ namespace YooAsset
if (_loadEditorPackageVersionOp == null)
{
_loadEditorPackageVersionOp = new LoadEditorPackageVersionOperation(_fileSystem);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadEditorPackageVersionOp);
+ _loadEditorPackageVersionOp.StartOperation();
+ AddChildOperation(_loadEditorPackageVersionOp);
}
+ _loadEditorPackageVersionOp.UpdateOperation();
if (_loadEditorPackageVersionOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/internal/LoadEditorPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/internal/LoadEditorPackageManifestOperation.cs
index c7793a63..ce14da45 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/internal/LoadEditorPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultEditorFileSystem/Operation/internal/LoadEditorPackageManifestOperation.cs
@@ -77,9 +77,11 @@ namespace YooAsset
if (_deserializer == null)
{
_deserializer = new DeserializeManifestOperation(_fileData);
- OperationSystem.StartOperation(_fileSystem.PackageName, _deserializer);
+ _deserializer.StartOperation();
+ AddChildOperation(_deserializer);
}
+ _deserializer.UpdateOperation();
Progress = _deserializer.Progress;
if (_deserializer.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs
index ffbe1f2a..dca3fbd4 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/DefaultWebRemoteFileSystem.cs
@@ -61,25 +61,21 @@ namespace YooAsset
public virtual FSInitializeFileSystemOperation InitializeFileSystemAsync()
{
var operation = new DWRFSInitializeOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout)
{
var operation = new DWRFSLoadPackageManifestOperation(this, packageVersion, timeout);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
{
var operation = new DWRFSRequestPackageVersionOperation(this, appendTimeTicks, timeout);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam)
{
var operation = new FSClearCacheFilesCompleteOperation();
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param)
@@ -91,14 +87,12 @@ namespace YooAsset
if (bundle.BundleType == (int)EBuildBundleType.AssetBundle)
{
var operation = new DWRFSLoadAssetBundleOperation(this, bundle);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else
{
string error = $"{nameof(DefaultWebRemoteFileSystem)} not support load bundle type : {bundle.BundleType}";
var operation = new FSLoadBundleCompleteOperation(error);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
}
@@ -126,7 +120,7 @@ namespace YooAsset
{
PackageName = packageName;
}
- public virtual void OnUpdate()
+ public virtual void OnDestroy()
{
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs
index 0bac9cc4..8327dced 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs
@@ -41,15 +41,18 @@ namespace YooAsset
if (_bundle.Encrypted)
{
_downloadAssetBundleOp = new DownloadWebEncryptAssetBundleOperation(true, _fileSystem.DecryptionServices, _bundle, downloadParam);
- OperationSystem.StartOperation(_fileSystem.PackageName, _downloadAssetBundleOp);
+ _downloadAssetBundleOp.StartOperation();
+ AddChildOperation(_downloadAssetBundleOp);
}
else
{
_downloadAssetBundleOp = new DownloadWebNormalAssetBundleOperation(_fileSystem.DisableUnityWebCache, _bundle, downloadParam);
- OperationSystem.StartOperation(_fileSystem.PackageName, _downloadAssetBundleOp);
+ _downloadAssetBundleOp.StartOperation();
+ AddChildOperation(_downloadAssetBundleOp);
}
}
+ _downloadAssetBundleOp.UpdateOperation();
DownloadProgress = _downloadAssetBundleOp.DownloadProgress;
DownloadedBytes = _downloadAssetBundleOp.DownloadedBytes;
Progress = _downloadAssetBundleOp.Progress;
@@ -90,13 +93,5 @@ namespace YooAsset
UnityEngine.Debug.LogError(Error);
}
}
- public override void AbortDownloadOperation()
- {
- if (_steps == ESteps.DownloadAssetBundle)
- {
- if (_downloadAssetBundleOp != null)
- _downloadAssetBundleOp.SetAbort();
- }
- }
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadPackageManifestOperation.cs
index 80a9b4a5..5a53eeec 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadPackageManifestOperation.cs
@@ -39,9 +39,11 @@ namespace YooAsset
if (_requestWebPackageHashOp == null)
{
_requestWebPackageHashOp = new RequestWebRemotePackageHashOperation(_fileSystem, _packageVersion, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestWebPackageHashOp);
+ _requestWebPackageHashOp.StartOperation();
+ AddChildOperation(_requestWebPackageHashOp);
}
+ _requestWebPackageHashOp.UpdateOperation();
if (_requestWebPackageHashOp.IsDone == false)
return;
@@ -63,9 +65,11 @@ namespace YooAsset
{
string packageHash = _requestWebPackageHashOp.PackageHash;
_loadWebPackageManifestOp = new LoadWebRemotePackageManifestOperation(_fileSystem, _packageVersion, packageHash);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadWebPackageManifestOp);
+ _loadWebPackageManifestOp.StartOperation();
+ AddChildOperation(_loadWebPackageManifestOp);
}
+ _loadWebPackageManifestOp.UpdateOperation();
Progress = _loadWebPackageManifestOp.Progress;
if (_loadWebPackageManifestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSRequestPackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSRequestPackageVersionOperation.cs
index 76556420..77aa5187 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSRequestPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSRequestPackageVersionOperation.cs
@@ -37,9 +37,11 @@ namespace YooAsset
if (_requestWebPackageVersionOp == null)
{
_requestWebPackageVersionOp = new RequestWebRemotePackageVersionOperation(_fileSystem, _appendTimeTicks, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestWebPackageVersionOp);
+ _requestWebPackageVersionOp.StartOperation();
+ AddChildOperation(_requestWebPackageVersionOp);
}
+ _requestWebPackageVersionOp.UpdateOperation();
Progress = _requestWebPackageVersionOp.Progress;
if (_requestWebPackageVersionOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/LoadWebRemotePackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/LoadWebRemotePackageManifestOperation.cs
index c4755b0f..ab6ea4fc 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/LoadWebRemotePackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/LoadWebRemotePackageManifestOperation.cs
@@ -49,9 +49,11 @@ namespace YooAsset
string fileName = YooAssetSettingsData.GetManifestBinaryFileName(_fileSystem.PackageName, _packageVersion);
string url = GetWebRequestURL(fileName);
_webDataRequestOp = new UnityWebDataRequestOperation(url);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webDataRequestOp);
+ _webDataRequestOp.StartOperation();
+ AddChildOperation(_webDataRequestOp);
}
+ _webDataRequestOp.UpdateOperation();
if (_webDataRequestOp.IsDone == false)
return;
@@ -88,9 +90,11 @@ namespace YooAsset
if (_deserializer == null)
{
_deserializer = new DeserializeManifestOperation(_webDataRequestOp.Result);
- OperationSystem.StartOperation(_fileSystem.PackageName, _deserializer);
+ _deserializer.StartOperation();
+ AddChildOperation(_deserializer);
}
+ _deserializer.UpdateOperation();
Progress = _deserializer.Progress;
if (_deserializer.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageHashOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageHashOperation.cs
index a4f61216..bf98767d 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageHashOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageHashOperation.cs
@@ -46,9 +46,11 @@ namespace YooAsset
string fileName = YooAssetSettingsData.GetPackageHashFileName(_fileSystem.PackageName, _packageVersion);
string url = GetWebRequestURL(fileName);
_webTextRequestOp = new UnityWebTextRequestOperation(url, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webTextRequestOp);
+ _webTextRequestOp.StartOperation();
+ AddChildOperation(_webTextRequestOp);
}
+ _webTextRequestOp.UpdateOperation();
Progress = _webTextRequestOp.Progress;
if (_webTextRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageVersionOperation.cs
index e32d0919..b65e64f5 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/internal/RequestWebRemotePackageVersionOperation.cs
@@ -46,9 +46,11 @@ namespace YooAsset
string fileName = YooAssetSettingsData.GetPackageVersionFileName(_fileSystem.PackageName);
string url = GetWebRequestURL(fileName);
_webTextRequestOp = new UnityWebTextRequestOperation(url, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webTextRequestOp);
+ _webTextRequestOp.StartOperation();
+ AddChildOperation(_webTextRequestOp);
}
+ _webTextRequestOp.UpdateOperation();
Progress = _webTextRequestOp.Progress;
if (_webTextRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs
index 82e003c9..4a3cb528 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/DefaultWebServerFileSystem.cs
@@ -70,25 +70,21 @@ namespace YooAsset
public virtual FSInitializeFileSystemOperation InitializeFileSystemAsync()
{
var operation = new DWSFSInitializeOperation(this);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSLoadPackageManifestOperation LoadPackageManifestAsync(string packageVersion, int timeout)
{
var operation = new DWSFSLoadPackageManifestOperation(this, packageVersion, timeout);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSRequestPackageVersionOperation RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
{
var operation = new DWSFSRequestPackageVersionOperation(this, timeout);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSClearCacheFilesOperation ClearCacheFilesAsync(PackageManifest manifest, string clearMode, object clearParam)
{
var operation = new FSClearCacheFilesCompleteOperation();
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
public virtual FSDownloadFileOperation DownloadFileAsync(PackageBundle bundle, DownloadParam param)
@@ -100,14 +96,12 @@ namespace YooAsset
if (bundle.BundleType == (int)EBuildBundleType.AssetBundle)
{
var operation = new DWSFSLoadAssetBundleOperation(this, bundle);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
else
{
string error = $"{nameof(DefaultWebServerFileSystem)} not support load bundle type : {bundle.BundleType}";
var operation = new FSLoadBundleCompleteOperation(error);
- OperationSystem.StartOperation(PackageName, operation);
return operation;
}
}
@@ -136,7 +130,7 @@ namespace YooAsset
else
_webPackageRoot = packageRoot;
}
- public virtual void OnUpdate()
+ public virtual void OnDestroy()
{
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs
index 27459d6a..ae2a5dc9 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSInitializeOperation.cs
@@ -1,6 +1,4 @@
-using static UnityEngine.Networking.UnityWebRequest;
-
namespace YooAsset
{
internal class DWSFSInitializeOperation : FSInitializeFileSystemOperation
@@ -49,9 +47,11 @@ namespace YooAsset
#endif
_loadCatalogFileOp = new LoadWebServerCatalogFileOperation(_fileSystem);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadCatalogFileOp);
+ _loadCatalogFileOp.StartOperation();
+ AddChildOperation(_loadCatalogFileOp);
}
+ _loadCatalogFileOp.UpdateOperation();
if (_loadCatalogFileOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs
index c3d19e4d..dbe03643 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs
@@ -42,15 +42,18 @@ namespace YooAsset
if (_bundle.Encrypted)
{
_downloadAssetBundleOp = new DownloadWebEncryptAssetBundleOperation(true, _fileSystem.DecryptionServices, _bundle, downloadParam);
- OperationSystem.StartOperation(_fileSystem.PackageName, _downloadAssetBundleOp);
+ _downloadAssetBundleOp.StartOperation();
+ AddChildOperation(_downloadAssetBundleOp);
}
else
{
_downloadAssetBundleOp = new DownloadWebNormalAssetBundleOperation(_fileSystem.DisableUnityWebCache, _bundle, downloadParam);
- OperationSystem.StartOperation(_fileSystem.PackageName, _downloadAssetBundleOp);
+ _downloadAssetBundleOp.StartOperation();
+ AddChildOperation(_downloadAssetBundleOp);
}
}
+ _downloadAssetBundleOp.UpdateOperation();
DownloadProgress = _downloadAssetBundleOp.DownloadProgress;
DownloadedBytes = _downloadAssetBundleOp.DownloadedBytes;
Progress = _downloadAssetBundleOp.Progress;
@@ -91,13 +94,5 @@ namespace YooAsset
UnityEngine.Debug.LogError(Error);
}
}
- public override void AbortDownloadOperation()
- {
- if (_steps == ESteps.DownloadAssetBundle)
- {
- if (_downloadAssetBundleOp != null)
- _downloadAssetBundleOp.SetAbort();
- }
- }
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadPackageManifestOperation.cs
index 4673fa2a..ab5672b3 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadPackageManifestOperation.cs
@@ -39,9 +39,11 @@ namespace YooAsset
if (_requestWebPackageHashOp == null)
{
_requestWebPackageHashOp = new RequestWebServerPackageHashOperation(_fileSystem, _packageVersion, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestWebPackageHashOp);
+ _requestWebPackageHashOp.StartOperation();
+ AddChildOperation(_requestWebPackageHashOp);
}
+ _requestWebPackageHashOp.UpdateOperation();
if (_requestWebPackageHashOp.IsDone == false)
return;
@@ -63,9 +65,11 @@ namespace YooAsset
{
string packageHash = _requestWebPackageHashOp.PackageHash;
_loadWebPackageManifestOp = new LoadWebServerPackageManifestOperation(_fileSystem, _packageVersion, packageHash);
- OperationSystem.StartOperation(_fileSystem.PackageName, _loadWebPackageManifestOp);
+ _loadWebPackageManifestOp.StartOperation();
+ AddChildOperation(_loadWebPackageManifestOp);
}
+ _loadWebPackageManifestOp.UpdateOperation();
Progress = _loadWebPackageManifestOp.Progress;
if (_loadWebPackageManifestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSRequestPackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSRequestPackageVersionOperation.cs
index 6124cb5d..349a3aa6 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSRequestPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSRequestPackageVersionOperation.cs
@@ -35,9 +35,11 @@ namespace YooAsset
if (_requestWebPackageVersionOp == null)
{
_requestWebPackageVersionOp = new RequestWebServerPackageVersionOperation(_fileSystem, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _requestWebPackageVersionOp);
+ _requestWebPackageVersionOp.StartOperation();
+ AddChildOperation(_requestWebPackageVersionOp);
}
+ _requestWebPackageVersionOp.UpdateOperation();
Progress = _requestWebPackageVersionOp.Progress;
if (_requestWebPackageVersionOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerPackageManifestOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerPackageManifestOperation.cs
index f4c984ef..8f04570f 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerPackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/LoadWebServerPackageManifestOperation.cs
@@ -47,9 +47,11 @@ namespace YooAsset
string filePath = _fileSystem.GetWebPackageManifestFilePath(_packageVersion);
string url = DownloadSystemHelper.ConvertToWWWPath(filePath);
_webDataRequestOp = new UnityWebDataRequestOperation(url);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webDataRequestOp);
+ _webDataRequestOp.StartOperation();
+ AddChildOperation(_webDataRequestOp);
}
+ _webDataRequestOp.UpdateOperation();
if (_webDataRequestOp.IsDone == false)
return;
@@ -85,9 +87,11 @@ namespace YooAsset
if (_deserializer == null)
{
_deserializer = new DeserializeManifestOperation(_webDataRequestOp.Result);
- OperationSystem.StartOperation(_fileSystem.PackageName, _deserializer);
+ _deserializer.StartOperation();
+ AddChildOperation(_deserializer);
}
+ _deserializer.UpdateOperation();
Progress = _deserializer.Progress;
if (_deserializer.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageHashOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageHashOperation.cs
index 32d4489a..6b9fbf57 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageHashOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageHashOperation.cs
@@ -44,9 +44,11 @@ namespace YooAsset
string filePath = _fileSystem.GetWebPackageHashFilePath(_packageVersion);
string url = DownloadSystemHelper.ConvertToWWWPath(filePath);
_webTextRequestOp = new UnityWebTextRequestOperation(url, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webTextRequestOp);
+ _webTextRequestOp.StartOperation();
+ AddChildOperation(_webTextRequestOp);
}
+ _webTextRequestOp.UpdateOperation();
Progress = _webTextRequestOp.Progress;
if (_webTextRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageVersionOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageVersionOperation.cs
index e21b80d0..409f6791 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/internal/RequestWebServerPackageVersionOperation.cs
@@ -42,9 +42,11 @@ namespace YooAsset
string filePath = _fileSystem.GetWebPackageVersionFilePath();
string url = DownloadSystemHelper.ConvertToWWWPath(filePath);
_webTextRequestOp = new UnityWebTextRequestOperation(url, _timeout);
- OperationSystem.StartOperation(_fileSystem.PackageName, _webTextRequestOp);
+ _webTextRequestOp.StartOperation();
+ AddChildOperation(_webTextRequestOp);
}
+ _webTextRequestOp.UpdateOperation();
if (_webTextRequestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs
index 8a46fc05..4a296f45 100644
--- a/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/Interface/IFileSystem.cs
@@ -56,14 +56,14 @@ namespace YooAsset
void SetParameter(string name, object value);
///
- /// 创建缓存系统
+ /// 创建文件系统
///
void OnCreate(string packageName, string packageRoot);
///
- /// 更新文件系统
+ /// 销毁文件系统
///
- void OnUpdate();
+ void OnDestroy();
///
diff --git a/Assets/YooAsset/Runtime/FileSystem/Operation/FSLoadBundleFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/Operation/FSLoadBundleFileOperation.cs
index a0753cae..dcc327d9 100644
--- a/Assets/YooAsset/Runtime/FileSystem/Operation/FSLoadBundleFileOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/Operation/FSLoadBundleFileOperation.cs
@@ -1,5 +1,4 @@
-using UnityEngine;
-
+
namespace YooAsset
{
internal abstract class FSLoadBundleOperation : AsyncOperationBase
@@ -18,11 +17,6 @@ namespace YooAsset
/// 下载大小
///
public long DownloadedBytes { protected set; get; } = 0;
-
- ///
- /// 终止下载任务
- ///
- public abstract void AbortDownloadOperation();
}
internal sealed class FSLoadBundleCompleteOperation : FSLoadBundleOperation
@@ -41,8 +35,5 @@ namespace YooAsset
internal override void InternalUpdate()
{
}
- public override void AbortDownloadOperation()
- {
- }
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs
index f3c6d34d..6456c80e 100644
--- a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs
+++ b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs
@@ -21,7 +21,7 @@ namespace YooAsset
///
/// 是否已经完成
///
- internal bool IsFinish = false;
+ internal bool IsFinish { private set; get; } = false;
///
/// 优先级
@@ -110,11 +110,32 @@ namespace YooAsset
throw new System.NotImplementedException(this.GetType().Name);
}
+ ///
+ /// 设置包裹名称
+ ///
+ ///
internal void SetPackageName(string packageName)
{
_packageName = packageName;
}
- internal void SetStart()
+
+ ///
+ /// 添加子任务
+ ///
+ internal void AddChildOperation(AsyncOperationBase child)
+ {
+#if UNITY_EDITOR
+ if (_childs.Contains(child))
+ throw new Exception($"The child node {child.GetType().Name} already exists !");
+#endif
+
+ _childs.Add(child);
+ }
+
+ ///
+ /// 开始异步操作
+ ///
+ internal void StartOperation()
{
if (Status == EOperationStatus.None)
{
@@ -122,21 +143,40 @@ namespace YooAsset
InternalStart();
}
}
- internal void SetFinish()
+
+ ///
+ /// 更新异步操作
+ ///
+ internal void UpdateOperation()
{
- IsFinish = true;
+ if (IsDone == false)
+ InternalUpdate();
- // 进度百分百完成
- Progress = 1f;
+ if (IsDone && IsFinish == false)
+ {
+ IsFinish = true;
- //注意:如果完成回调内发生异常,会导致Task无限期等待
- _callback?.Invoke(this);
+ // 进度百分百完成
+ Progress = 1f;
- if (_taskCompletionSource != null)
- _taskCompletionSource.TrySetResult(null);
+ //注意:如果完成回调内发生异常,会导致Task无限期等待
+ _callback?.Invoke(this);
+
+ if (_taskCompletionSource != null)
+ _taskCompletionSource.TrySetResult(null);
+ }
}
- internal void SetAbort()
+
+ ///
+ /// 终止异步任务
+ ///
+ internal void AbortOperation()
{
+ foreach (var child in _childs)
+ {
+ child.AbortOperation();
+ }
+
if (IsDone == false)
{
Status = EOperationStatus.Failed;
@@ -188,20 +228,6 @@ namespace YooAsset
InternalWaitForAsyncComplete();
}
- ///
- /// 开启子任务
- ///
- internal void StartChildOperation(AsyncOperationBase child)
- {
-#if UNITY_EDITOR
- if (_childs.Contains(child))
- throw new Exception($"The child node {child.GetType().Name} already exists !");
-#endif
-
- child.SetStart();
- _childs.Add(child);
- }
-
#region 调试信息
#endregion
diff --git a/Assets/YooAsset/Runtime/OperationSystem/GameAsyncOperation.cs b/Assets/YooAsset/Runtime/OperationSystem/GameAsyncOperation.cs
index 7552ac25..8fe48872 100644
--- a/Assets/YooAsset/Runtime/OperationSystem/GameAsyncOperation.cs
+++ b/Assets/YooAsset/Runtime/OperationSystem/GameAsyncOperation.cs
@@ -53,7 +53,7 @@ namespace YooAsset
///
protected void Abort()
{
- SetAbort();
+ AbortOperation();
}
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs b/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs
index 8b217004..63433630 100644
--- a/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs
+++ b/Assets/YooAsset/Runtime/OperationSystem/OperationSystem.cs
@@ -43,8 +43,6 @@ namespace YooAsset
///
public static void Update()
{
- _frameTime = _watch.ElapsedMilliseconds;
-
// 添加新增的异步操作
if (_newList.Count > 0)
{
@@ -67,6 +65,7 @@ namespace YooAsset
}
// 更新进行中的异步操作
+ _frameTime = _watch.ElapsedMilliseconds;
for (int i = 0; i < _operations.Count; i++)
{
if (IsBusy)
@@ -76,11 +75,7 @@ namespace YooAsset
if (operation.IsFinish)
continue;
- if (operation.IsDone == false)
- operation.InternalUpdate();
-
- if (operation.IsDone)
- operation.SetFinish();
+ operation.UpdateOperation();
}
// 移除已经完成的异步操作
@@ -114,7 +109,7 @@ namespace YooAsset
{
if (operation.PackageName == packageName)
{
- operation.SetAbort();
+ operation.AbortOperation();
}
}
@@ -123,7 +118,7 @@ namespace YooAsset
{
if (operation.PackageName == packageName)
{
- operation.SetAbort();
+ operation.AbortOperation();
}
}
}
@@ -135,7 +130,7 @@ namespace YooAsset
{
_newList.Add(operation);
operation.SetPackageName(packageName);
- operation.SetStart();
+ operation.StartOperation();
}
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Operation/InstantiateOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Operation/InstantiateOperation.cs
index 7a2a3f13..4d2ca3ce 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Operation/InstantiateOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Operation/InstantiateOperation.cs
@@ -162,7 +162,7 @@ namespace YooAsset
_instantiateAsync.Cancel();
#endif
- SetAbort();
+ AbortOperation();
}
///
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Operation/Internal/LoadBundleFileOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Operation/Internal/LoadBundleFileOperation.cs
index ceeb0718..f4b4bb0f 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Operation/Internal/LoadBundleFileOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Operation/Internal/LoadBundleFileOperation.cs
@@ -67,11 +67,16 @@ namespace YooAsset
if (_steps == ESteps.LoadFile)
{
if (_loadBundleOp == null)
+ {
_loadBundleOp = LoadBundleInfo.LoadBundleFile();
+ _loadBundleOp.StartOperation();
+ AddChildOperation(_loadBundleOp);
+ }
if (IsWaitForAsyncComplete)
_loadBundleOp.WaitForAsyncComplete();
+ _loadBundleOp.UpdateOperation();
DownloadProgress = _loadBundleOp.DownloadProgress;
DownloadedBytes = _loadBundleOp.DownloadedBytes;
if (_loadBundleOp.IsDone == false)
@@ -209,14 +214,5 @@ namespace YooAsset
_removeList.Clear();
}
}
-
- ///
- /// 终止下载任务
- ///
- public void AbortDownloadOperation()
- {
- if (_loadBundleOp != null)
- _loadBundleOp.AbortDownloadOperation();
- }
}
}
\ No newline at end of file
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs
index c1f318af..4a5d1dc4 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Operation/UnloadAllAssetsOperation.cs
@@ -86,7 +86,7 @@ namespace YooAsset
// 注意:终止所有下载任务
foreach (var loader in _resManager.LoaderDic.Values)
{
- loader.AbortDownloadOperation();
+ loader.AbortOperation();
}
_steps = ESteps.CheckLoading;
}
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Provider/AllAssetsProvider.cs b/Assets/YooAsset/Runtime/ResourceManager/Provider/AllAssetsProvider.cs
index 5c4a7ba0..bc288158 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Provider/AllAssetsProvider.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Provider/AllAssetsProvider.cs
@@ -13,11 +13,14 @@ namespace YooAsset
if (_loadAllAssetsOp == null)
{
_loadAllAssetsOp = BundleResultObject.LoadAllAssetsAsync(MainAssetInfo);
+ _loadAllAssetsOp.StartOperation();
+ AddChildOperation(_loadAllAssetsOp);
}
if (IsWaitForAsyncComplete)
_loadAllAssetsOp.WaitForAsyncComplete();
+ _loadAllAssetsOp.UpdateOperation();
Progress = _loadAllAssetsOp.Progress;
if (_loadAllAssetsOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Provider/AssetProvider.cs b/Assets/YooAsset/Runtime/ResourceManager/Provider/AssetProvider.cs
index 847c7470..3c96d784 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Provider/AssetProvider.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Provider/AssetProvider.cs
@@ -13,11 +13,14 @@ namespace YooAsset
if (_loadAssetOp == null)
{
_loadAssetOp = BundleResultObject.LoadAssetAsync(MainAssetInfo);
+ _loadAssetOp.StartOperation();
+ AddChildOperation(_loadAssetOp);
}
if (IsWaitForAsyncComplete)
_loadAssetOp.WaitForAsyncComplete();
+ _loadAssetOp.UpdateOperation();
Progress = _loadAssetOp.Progress;
if (_loadAssetOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs
index a6e4e3f3..a239f46c 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs
@@ -10,7 +10,8 @@ namespace YooAsset
protected enum ESteps
{
None = 0,
- LoadBundleFile,
+ StartBundleLoader,
+ WaitBundleLoader,
ProcessBundleResult,
Done,
}
@@ -99,14 +100,24 @@ namespace YooAsset
internal override void InternalStart()
{
DebugBeginRecording();
- _steps = ESteps.LoadBundleFile;
+ _steps = ESteps.StartBundleLoader;
}
internal override void InternalUpdate()
{
if (_steps == ESteps.None || _steps == ESteps.Done)
return;
- if (_steps == ESteps.LoadBundleFile)
+ if (_steps == ESteps.StartBundleLoader)
+ {
+ foreach (var bundleLoader in _bundleLoaders)
+ {
+ bundleLoader.StartOperation();
+ AddChildOperation(bundleLoader);
+ }
+ _steps = ESteps.WaitBundleLoader;
+ }
+
+ if (_steps == ESteps.WaitBundleLoader)
{
if (IsWaitForAsyncComplete)
{
@@ -116,6 +127,13 @@ namespace YooAsset
}
}
+ // 更新资源包加载器
+ foreach (var bundleLoader in _bundleLoaders)
+ {
+ bundleLoader.UpdateOperation();
+ }
+
+ // 检测加载是否完成
foreach (var bundleLoader in _bundleLoaders)
{
if (bundleLoader.IsDone == false)
@@ -128,6 +146,7 @@ namespace YooAsset
}
}
+ // 检测加载结果
BundleResultObject = _mainBundleLoader.Result;
if (BundleResultObject == null)
{
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Provider/SceneProvider.cs b/Assets/YooAsset/Runtime/ResourceManager/Provider/SceneProvider.cs
index 791e05f9..0950b233 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Provider/SceneProvider.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Provider/SceneProvider.cs
@@ -23,6 +23,8 @@ namespace YooAsset
if (_loadSceneOp == null)
{
_loadSceneOp = BundleResultObject.LoadSceneOperation(MainAssetInfo, _loadParams, _suspendLoad);
+ _loadSceneOp.StartOperation();
+ AddChildOperation(_loadSceneOp);
}
if (IsWaitForAsyncComplete)
@@ -32,6 +34,7 @@ namespace YooAsset
if (_suspendLoad == false)
_loadSceneOp.UnSuspendLoad();
+ _loadSceneOp.UpdateOperation();
Progress = _loadSceneOp.Progress;
if (_loadSceneOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Provider/SubAssetsProvider.cs b/Assets/YooAsset/Runtime/ResourceManager/Provider/SubAssetsProvider.cs
index ee44b493..8d512620 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Provider/SubAssetsProvider.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Provider/SubAssetsProvider.cs
@@ -13,11 +13,14 @@ namespace YooAsset
if (_loadSubAssetsOp == null)
{
_loadSubAssetsOp = BundleResultObject.LoadSubAssetsAsync(MainAssetInfo);
+ _loadSubAssetsOp.StartOperation();
+ AddChildOperation(_loadSubAssetsOp);
}
if (IsWaitForAsyncComplete)
_loadSubAssetsOp.WaitForAsyncComplete();
+ _loadSubAssetsOp.UpdateOperation();
Progress = _loadSubAssetsOp.Progress;
if (_loadSubAssetsOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourceManager/ResourceManager.cs b/Assets/YooAsset/Runtime/ResourceManager/ResourceManager.cs
index 26b0a7d3..8958ec75 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/ResourceManager.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/ResourceManager.cs
@@ -321,7 +321,6 @@ namespace YooAsset
// 新增下载需求
loaderOperation = new LoadBundleFileOperation(this, bundleInfo);
- OperationSystem.StartOperation(PackageName, loaderOperation);
LoaderDic.Add(bundleName, loaderOperation);
return loaderOperation;
}
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs b/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs
index 3ea25ab5..5535ee7a 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/Interface/IPlayMode.cs
@@ -9,9 +9,9 @@ namespace YooAsset
PackageManifest ActiveManifest { set; get; }
///
- /// 更新游戏模式
+ /// 销毁文件系统
///
- void UpdatePlayMode();
+ void DestroyFileSystem();
///
/// 向网络端请求最新的资源版本
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs
index a36f9ad0..4b38c24b 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/ClearCacheFilesOperation.cs
@@ -25,7 +25,7 @@ namespace YooAsset
private FSClearCacheFilesOperation _clearCacheFilesOpB;
private FSClearCacheFilesOperation _clearCacheFilesOpC;
private ESteps _steps = ESteps.None;
-
+
internal ClearCacheFilesImplOperation(IPlayMode impl, IFileSystem fileSystemA, IFileSystem fileSystemB, IFileSystem fileSystemC, string clearMode, object clearParam)
{
_impl = impl;
@@ -53,8 +53,13 @@ namespace YooAsset
}
if (_clearCacheFilesOpA == null)
+ {
_clearCacheFilesOpA = _fileSystemA.ClearCacheFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam);
+ _clearCacheFilesOpA.StartOperation();
+ AddChildOperation(_clearCacheFilesOpA);
+ }
+ _clearCacheFilesOpA.UpdateOperation();
Progress = _clearCacheFilesOpA.Progress;
if (_clearCacheFilesOpA.IsDone == false)
return;
@@ -80,8 +85,13 @@ namespace YooAsset
}
if (_clearCacheFilesOpB == null)
+ {
_clearCacheFilesOpB = _fileSystemB.ClearCacheFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam);
+ _clearCacheFilesOpB.StartOperation();
+ AddChildOperation(_clearCacheFilesOpB);
+ }
+ _clearCacheFilesOpB.UpdateOperation();
Progress = _clearCacheFilesOpB.Progress;
if (_clearCacheFilesOpB.IsDone == false)
return;
@@ -108,8 +118,13 @@ namespace YooAsset
}
if (_clearCacheFilesOpC == null)
+ {
_clearCacheFilesOpC = _fileSystemC.ClearCacheFilesAsync(_impl.ActiveManifest, _clearMode, _clearParam);
+ _clearCacheFilesOpC.StartOperation();
+ AddChildOperation(_clearCacheFilesOpC);
+ }
+ _clearCacheFilesOpC.UpdateOperation();
Progress = _clearCacheFilesOpC.Progress;
if (_clearCacheFilesOpC.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/DestroyOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/DestroyOperation.cs
index e1b969f2..18fd8c70 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/DestroyOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/DestroyOperation.cs
@@ -63,8 +63,13 @@ namespace YooAsset
if (_steps == ESteps.UnloadAllAssets)
{
if (_unloadAllAssetsOp == null)
+ {
_unloadAllAssetsOp = _resourcePackage.UnloadAllAssetsAsync();
+ _unloadAllAssetsOp.StartOperation();
+ AddChildOperation(_unloadAllAssetsOp);
+ }
+ _unloadAllAssetsOp.UpdateOperation();
if (_unloadAllAssetsOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/InitializationOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/InitializationOperation.cs
index f4671218..3803716a 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/InitializationOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/InitializationOperation.cs
@@ -62,8 +62,13 @@ namespace YooAsset
if (_steps == ESteps.InitFileSystem)
{
if (_initFileSystemOp == null)
+ {
_initFileSystemOp = _impl.EditorFileSystem.InitializeFileSystemAsync();
+ _initFileSystemOp.StartOperation();
+ AddChildOperation(_initFileSystemOp);
+ }
+ _initFileSystemOp.UpdateOperation();
Progress = _initFileSystemOp.Progress;
if (_initFileSystemOp.IsDone == false)
return;
@@ -99,8 +104,6 @@ namespace YooAsset
private readonly OfflinePlayModeImpl _impl;
private readonly OfflinePlayModeParameters _parameters;
private FSInitializeFileSystemOperation _initFileSystemOp;
- private FSRequestPackageVersionOperation _requestPackageVersionOp;
- private FSLoadPackageManifestOperation _loadPackageManifestOp;
private ESteps _steps = ESteps.None;
internal OfflinePlayModeInitializationOperation(OfflinePlayModeImpl impl, OfflinePlayModeParameters parameters)
@@ -142,8 +145,13 @@ namespace YooAsset
if (_steps == ESteps.InitFileSystem)
{
if (_initFileSystemOp == null)
+ {
_initFileSystemOp = _impl.BuildinFileSystem.InitializeFileSystemAsync();
+ _initFileSystemOp.StartOperation();
+ AddChildOperation(_initFileSystemOp);
+ }
+ _initFileSystemOp.UpdateOperation();
Progress = _initFileSystemOp.Progress;
if (_initFileSystemOp.IsDone == false)
return;
@@ -221,8 +229,13 @@ namespace YooAsset
if (_steps == ESteps.InitBuildinFileSystem)
{
if (_initBuildinFileSystemOp == null)
+ {
_initBuildinFileSystemOp = _impl.BuildinFileSystem.InitializeFileSystemAsync();
+ _initBuildinFileSystemOp.StartOperation();
+ AddChildOperation(_initBuildinFileSystemOp);
+ }
+ _initBuildinFileSystemOp.UpdateOperation();
Progress = _initBuildinFileSystemOp.Progress;
if (_initBuildinFileSystemOp.IsDone == false)
return;
@@ -264,8 +277,13 @@ namespace YooAsset
if (_steps == ESteps.InitCacheFileSystem)
{
if (_initCacheFileSystemOp == null)
+ {
_initCacheFileSystemOp = _impl.CacheFileSystem.InitializeFileSystemAsync();
+ _initCacheFileSystemOp.StartOperation();
+ AddChildOperation(_initCacheFileSystemOp);
+ }
+ _initCacheFileSystemOp.UpdateOperation();
Progress = _initCacheFileSystemOp.Progress;
if (_initCacheFileSystemOp.IsDone == false)
return;
@@ -344,8 +362,13 @@ namespace YooAsset
if (_steps == ESteps.InitWebServerFileSystem)
{
if (_initWebServerFileSystemOp == null)
+ {
_initWebServerFileSystemOp = _impl.WebServerFileSystem.InitializeFileSystemAsync();
+ _initWebServerFileSystemOp.StartOperation();
+ AddChildOperation(_initWebServerFileSystemOp);
+ }
+ _initWebServerFileSystemOp.UpdateOperation();
Progress = _initWebServerFileSystemOp.Progress;
if (_initWebServerFileSystemOp.IsDone == false)
return;
@@ -385,8 +408,13 @@ namespace YooAsset
if (_steps == ESteps.InitWebRemoteFileSystem)
{
if (_initWebRemoteFileSystemOp == null)
+ {
_initWebRemoteFileSystemOp = _impl.WebRemoteFileSystem.InitializeFileSystemAsync();
+ _initWebRemoteFileSystemOp.StartOperation();
+ AddChildOperation(_initWebRemoteFileSystemOp);
+ }
+ _initWebRemoteFileSystemOp.UpdateOperation();
Progress = _initWebRemoteFileSystemOp.Progress;
if (_initWebRemoteFileSystemOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/PreDownloadContentOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/PreDownloadContentOperation.cs
index d97ccecb..3e498bd7 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/PreDownloadContentOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/PreDownloadContentOperation.cs
@@ -197,8 +197,11 @@ namespace YooAsset
if (_loadPackageManifestOp == null)
{
_loadPackageManifestOp = _impl.CacheFileSystem.LoadPackageManifestAsync(_packageVersion, _timeout);
+ _loadPackageManifestOp.StartOperation();
+ AddChildOperation(_loadPackageManifestOp);
}
+ _loadPackageManifestOp.UpdateOperation();
if (_loadPackageManifestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/RequestPackageVersionOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/RequestPackageVersionOperation.cs
index 0b51e322..38dc778f 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/RequestPackageVersionOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/RequestPackageVersionOperation.cs
@@ -44,8 +44,13 @@ namespace YooAsset
if (_steps == ESteps.RequestPackageVersion)
{
if (_requestPackageVersionOp == null)
+ {
_requestPackageVersionOp = _fileSystem.RequestPackageVersionAsync(_appendTimeTicks, _timeout);
+ _requestPackageVersionOp.StartOperation();
+ AddChildOperation(_requestPackageVersionOp);
+ }
+ _requestPackageVersionOp.UpdateOperation();
if (_requestPackageVersionOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/Operation/UpdatePackageManifestOperation.cs b/Assets/YooAsset/Runtime/ResourcePackage/Operation/UpdatePackageManifestOperation.cs
index 6809e338..0b27eabb 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/Operation/UpdatePackageManifestOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/Operation/UpdatePackageManifestOperation.cs
@@ -73,8 +73,13 @@ namespace YooAsset
if (_steps == ESteps.LoadPackageManifest)
{
if (_loadPackageManifestOp == null)
+ {
_loadPackageManifestOp = _fileSystem.LoadPackageManifestAsync(_packageVersion, _timeout);
+ _loadPackageManifestOp.StartOperation();
+ AddChildOperation(_loadPackageManifestOp);
+ }
+ _loadPackageManifestOp.UpdateOperation();
if (_loadPackageManifestOp.IsDone == false)
return;
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs
index 69f1a055..24e263a7 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/EditorSimulateModeImpl.cs
@@ -28,10 +28,10 @@ namespace YooAsset
#region IPlayMode接口
public PackageManifest ActiveManifest { set; get; }
- void IPlayMode.UpdatePlayMode()
+ void IPlayMode.DestroyFileSystem()
{
if (EditorFileSystem != null)
- EditorFileSystem.OnUpdate();
+ EditorFileSystem.OnDestroy();
}
RequestPackageVersionOperation IPlayMode.RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs
index 7debfd20..566c17a0 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/HostPlayModeImpl.cs
@@ -29,13 +29,12 @@ namespace YooAsset
#region IPlayMode接口
public PackageManifest ActiveManifest { set; get; }
- void IPlayMode.UpdatePlayMode()
+ void IPlayMode.DestroyFileSystem()
{
if (BuildinFileSystem != null)
- BuildinFileSystem.OnUpdate();
-
+ BuildinFileSystem.OnDestroy();
if (CacheFileSystem != null)
- CacheFileSystem.OnUpdate();
+ CacheFileSystem.OnDestroy();
}
RequestPackageVersionOperation IPlayMode.RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs
index 93918d11..305dd929 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/OfflinePlayModeImpl.cs
@@ -28,10 +28,10 @@ namespace YooAsset
#region IPlayMode接口
public PackageManifest ActiveManifest { set; get; }
- void IPlayMode.UpdatePlayMode()
+ void IPlayMode.DestroyFileSystem()
{
if (BuildinFileSystem != null)
- BuildinFileSystem.OnUpdate();
+ BuildinFileSystem.OnDestroy();
}
RequestPackageVersionOperation IPlayMode.RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs
index 03a6c2c0..626c6849 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/PlayMode/WebPlayModeImpl.cs
@@ -29,13 +29,13 @@ namespace YooAsset
#region IPlayMode接口
public PackageManifest ActiveManifest { set; get; }
- void IPlayMode.UpdatePlayMode()
+ void IPlayMode.DestroyFileSystem()
{
if (WebServerFileSystem != null)
- WebServerFileSystem.OnUpdate();
+ WebServerFileSystem.OnDestroy();
if (WebRemoteFileSystem != null)
- WebRemoteFileSystem.OnUpdate();
+ WebRemoteFileSystem.OnDestroy();
}
RequestPackageVersionOperation IPlayMode.RequestPackageVersionAsync(bool appendTimeTicks, int timeout)
diff --git a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs
index 997561a2..0271de5f 100644
--- a/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs
+++ b/Assets/YooAsset/Runtime/ResourcePackage/ResourcePackage.cs
@@ -50,15 +50,6 @@ namespace YooAsset
PackageName = packageName;
}
- ///
- /// 更新资源包裹
- ///
- internal void UpdatePackage()
- {
- if (_playModeImpl != null)
- _playModeImpl.UpdatePlayMode();
- }
-
///
/// 销毁资源包裹
///
@@ -77,6 +68,10 @@ namespace YooAsset
_resourceManager = null;
}
+ // 销毁文件系统
+ if (_playModeImpl != null)
+ _playModeImpl.DestroyFileSystem();
+
_bundleQuery = null;
_playModeImpl = null;
}
diff --git a/Assets/YooAsset/Runtime/YooAssets.cs b/Assets/YooAsset/Runtime/YooAssets.cs
index cb0f5c7b..6e7c9b8b 100644
--- a/Assets/YooAsset/Runtime/YooAssets.cs
+++ b/Assets/YooAsset/Runtime/YooAssets.cs
@@ -60,11 +60,6 @@ namespace YooAsset
if (_isInitialize)
{
OperationSystem.Update();
-
- for (int i = 0; i < _packages.Count; i++)
- {
- _packages[i].UpdatePackage();
- }
}
}