diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs index b3edf4a9..7cd11d27 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebRemoteFileSystem/Operation/DWRFSLoadBundleOperation.cs @@ -40,7 +40,7 @@ namespace YooAsset if (_bundle.Encrypted) { - _downloadAssetBundleOp = new DownloadWebEncryptAssetBundleOperation(_fileSystem.DecryptionServices, _bundle, downloadParam); + _downloadAssetBundleOp = new DownloadWebEncryptAssetBundleOperation(true, _fileSystem.DecryptionServices, _bundle, downloadParam); OperationSystem.StartOperation(_fileSystem.PackageName, _downloadAssetBundleOp); } else @@ -59,7 +59,7 @@ namespace YooAsset if (_downloadAssetBundleOp.Status == EOperationStatus.Succeed) { var assetBundle = _downloadAssetBundleOp.Result; - if(assetBundle == null) + if (assetBundle == null) { _steps = ESteps.Done; Status = EOperationStatus.Failed; diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs index b57fc776..e3129a65 100644 --- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebServerFileSystem/Operation/DWSFSLoadBundleOperation.cs @@ -41,7 +41,7 @@ namespace YooAsset if (_bundle.Encrypted) { - _downloadAssetBundleOp = new DownloadWebEncryptAssetBundleOperation(_fileSystem.DecryptionServices, _bundle, downloadParam); + _downloadAssetBundleOp = new DownloadWebEncryptAssetBundleOperation(true, _fileSystem.DecryptionServices, _bundle, downloadParam); OperationSystem.StartOperation(_fileSystem.PackageName, _downloadAssetBundleOp); } else diff --git a/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/DownloadWebEncryptAssetBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/DownloadWebEncryptAssetBundleOperation.cs index 928f429c..9636dd88 100644 --- a/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/DownloadWebEncryptAssetBundleOperation.cs +++ b/Assets/YooAsset/Runtime/FileSystem/Operation/Internal/DownloadWebEncryptAssetBundleOperation.cs @@ -5,12 +5,14 @@ namespace YooAsset { internal class DownloadWebEncryptAssetBundleOperation : DownloadAssetBundleOperation { + private readonly bool _checkTimeout; private readonly IWebDecryptionServices _decryptionServices; private DownloadHandlerBuffer _downloadhandler; private ESteps _steps = ESteps.None; - internal DownloadWebEncryptAssetBundleOperation(IWebDecryptionServices decryptionServices, PackageBundle bundle, DownloadParam param) : base(bundle, param) + internal DownloadWebEncryptAssetBundleOperation(bool checkTimeout, IWebDecryptionServices decryptionServices, PackageBundle bundle, DownloadParam param) : base(bundle, param) { + _checkTimeout = checkTimeout; _decryptionServices = decryptionServices; } internal override void InternalOnStart() @@ -45,7 +47,8 @@ namespace YooAsset Progress = DownloadProgress; if (_webRequest.isDone == false) { - CheckRequestTimeout(); + if (_checkTimeout) + CheckRequestTimeout(); return; } @@ -61,7 +64,17 @@ namespace YooAsset return; } - AssetBundle assetBundle = LoadEncryptedAssetBundle(_downloadhandler.data); + var fileData = _downloadhandler.data; + if (fileData == null || fileData.Length == 0) + { + _steps = ESteps.Done; + Status = EOperationStatus.Failed; + Error = $"The download handler data is null or empty !"; + YooLogger.Error(Error); + return; + } + + AssetBundle assetBundle = LoadEncryptedAssetBundle(fileData); if (assetBundle == null) { _steps = ESteps.Done;