diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/BuildTasks/TaskEncryption_RFBP.cs b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/BuildTasks/TaskEncryption_RFBP.cs
new file mode 100644
index 0000000..cf4f27c
--- /dev/null
+++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/BuildTasks/TaskEncryption_RFBP.cs
@@ -0,0 +1,23 @@
+
+namespace YooAsset.Editor
+{
+ public class TaskEncryption_RFBP : TaskEncryption, IBuildTask
+ {
+ ///
+ /// 加密文件
+ ///
+ ///
+ public void Run(BuildContext context)
+ {
+ var buildParameters = context.GetContextObject();
+ var buildMapContext = context.GetContextObject();
+
+ var buildMode = buildParameters.Parameters.BuildMode;
+
+ if (buildMode == EBuildMode.ForceRebuild || buildMode == EBuildMode.IncrementalBuild)
+ {
+ EncryptingBundleFiles(buildParameters, buildMapContext);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/BuildTasks/TaskEncryption_RFBP.cs.meta b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/BuildTasks/TaskEncryption_RFBP.cs.meta
new file mode 100644
index 0000000..af54524
--- /dev/null
+++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/BuildTasks/TaskEncryption_RFBP.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b3e156139dcc25f4c9440ec3d6cb96d2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/RawFileBuildPipeline.cs b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/RawFileBuildPipeline.cs
index e220a0b..8358e91 100644
--- a/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/RawFileBuildPipeline.cs
+++ b/Assets/YooAsset/Editor/AssetBundleBuilder/BuildPipeline/RawFileBuildPipeline/RawFileBuildPipeline.cs
@@ -32,6 +32,7 @@ namespace YooAsset.Editor
new TaskPrepare_RFBP(),
new TaskGetBuildMap_RFBP(),
new TaskBuilding_RFBP(),
+ new TaskEncryption_RFBP(),
new TaskUpdateBundleInfo_RFBP(),
new TaskCreateManifest_RFBP(),
new TaskCreateReport_RFBP(),
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs
index 1dcfb6c..676f28e 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/DefaultBuildinFileSystem.cs
@@ -2,6 +2,7 @@
using System.IO;
using System.Collections.Generic;
using UnityEngine;
+using System.Text;
namespace YooAsset
{
@@ -98,6 +99,11 @@ namespace YooAsset
/// 自定义参数:原生文件构建管线
///
public bool RawFileBuildPipeline { private set; get; } = false;
+
+ ///
+ /// 自定义参数:解密方法类
+ ///
+ public IDecryptionServices DecryptionServices { private set; get; }
#endregion
@@ -181,18 +187,22 @@ namespace YooAsset
public virtual void SetParameter(string name, object value)
{
- if (name == "FILE_VERIFY_LEVEL")
+ if (name == FileSystemParameters.FILE_VERIFY_LEVEL)
{
FileVerifyLevel = (EFileVerifyLevel)value;
}
- else if (name == "APPEND_FILE_EXTENSION")
+ else if (name == FileSystemParameters.APPEND_FILE_EXTENSION)
{
AppendFileExtension = (bool)value;
}
- else if (name == "RAW_FILE_BUILD_PIPELINE")
+ else if (name == FileSystemParameters.RAW_FILE_BUILD_PIPELINE)
{
RawFileBuildPipeline = (bool)value;
}
+ else if (name == FileSystemParameters.DECRYPTION_SERVICES)
+ {
+ DecryptionServices = (IDecryptionServices)value;
+ }
else
{
YooLogger.Warning($"Invalid parameter : {name}");
@@ -210,10 +220,11 @@ namespace YooAsset
// 创建解压文件系统
var remoteServices = new UnpackRemoteServices(_packageRoot);
_unpackFileSystem = new DefaultUnpackFileSystem();
- _unpackFileSystem.SetParameter("REMOTE_SERVICES", remoteServices);
- _unpackFileSystem.SetParameter("FILE_VERIFY_LEVEL", FileVerifyLevel);
- _unpackFileSystem.SetParameter("APPEND_FILE_EXTENSION", AppendFileExtension);
- _unpackFileSystem.SetParameter("RAW_FILE_BUILD_PIPELINE", RawFileBuildPipeline);
+ _unpackFileSystem.SetParameter(FileSystemParameters.REMOTE_SERVICES, remoteServices);
+ _unpackFileSystem.SetParameter(FileSystemParameters.FILE_VERIFY_LEVEL, FileVerifyLevel);
+ _unpackFileSystem.SetParameter(FileSystemParameters.APPEND_FILE_EXTENSION, AppendFileExtension);
+ _unpackFileSystem.SetParameter(FileSystemParameters.RAW_FILE_BUILD_PIPELINE, RawFileBuildPipeline);
+ _unpackFileSystem.SetParameter(FileSystemParameters.DECRYPTION_SERVICES, DecryptionServices);
_unpackFileSystem.OnCreate(packageName, null);
}
public virtual void OnUpdate()
@@ -257,7 +268,17 @@ namespace YooAsset
return null;
string filePath = GetBuildinFileLoadPath(bundle);
- return FileUtility.ReadAllBytes(filePath);
+ var data = FileUtility.ReadAllBytes(filePath);
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Null!");
+ return null;
+ }
+ return DecryptionServices.ReadFileData(data);
+ }
+ return data;
}
public virtual string ReadFileText(PackageBundle bundle)
{
@@ -268,7 +289,18 @@ namespace YooAsset
return null;
string filePath = GetBuildinFileLoadPath(bundle);
- return FileUtility.ReadAllText(filePath);
+ var data = FileUtility.ReadAllBytes(filePath);
+
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Null!");
+ return null;
+ }
+ data = DecryptionServices.ReadFileData(data);
+ }
+ return Encoding.UTF8.GetString(data);
}
#region 内部方法
@@ -310,7 +342,60 @@ namespace YooAsset
string rootPath = PathUtility.Combine(Application.dataPath, "StreamingAssets", YooAssetSettingsData.Setting.DefaultYooFolderName);
return PathUtility.Combine(rootPath, PackageName);
}
-
+ public AssetBundle LoadAssetBundle(PackageBundle bundle)
+ {
+ string filePath = GetBuildinFileLoadPath(bundle);
+
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Null!");
+ return null;
+ }
+ else
+ {
+ return DecryptionServices.LoadAssetBundle(new DecryptFileInfo()
+ {
+ BundleName = bundle.BundleName,
+ FileLoadCRC = bundle.UnityCRC,
+ FileLoadPath = filePath,
+ }, out _);
+ }
+ }
+ else
+ {
+ return AssetBundle.LoadFromFile(filePath);
+ }
+ }
+
+ public AssetBundleCreateRequest LoadAssetBundleAsync(PackageBundle bundle)
+ {
+ string filePath = GetBuildinFileLoadPath(bundle);
+
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Empty!");
+ return null;
+ }
+ else
+ {
+ return DecryptionServices.LoadAssetBundleAsync(new DecryptFileInfo()
+ {
+ BundleName = bundle.BundleName,
+ FileLoadCRC = bundle.UnityCRC,
+ FileLoadPath = filePath,
+ }, out _);
+ }
+ }
+ else
+ {
+ return AssetBundle.LoadFromFileAsync(filePath);
+ }
+ }
+
///
/// 记录文件信息
///
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs
index 498e18a..2276f96 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultBuildinFileSystem/Operation/DBFSLoadBundleOperation.cs
@@ -41,14 +41,13 @@ namespace YooAsset
if (_steps == ESteps.LoadBuidlinAssetBundle)
{
- string filePath = _fileSystem.GetBuildinFileLoadPath(_bundle);
if (_isWaitForAsyncComplete)
{
- Result = AssetBundle.LoadFromFile(filePath);
+ Result = _fileSystem.LoadAssetBundle(_bundle);
}
else
{
- _createRequest = AssetBundle.LoadFromFileAsync(filePath);
+ _createRequest = _fileSystem.LoadAssetBundleAsync(_bundle);
}
_steps = ESteps.CheckLoadBuildinResult;
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs
index b084dfa..a9c5878 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/DefaultCacheFileSystem.cs
@@ -3,6 +3,7 @@ using System.IO;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
+using System.Text;
namespace YooAsset
{
@@ -97,6 +98,11 @@ namespace YooAsset
/// 自定义参数:断点续传下载器关注的错误码
///
public List ResumeDownloadResponseCodes { private set; get; } = null;
+
+ ///
+ /// 自定义参数:解密方法类
+ ///
+ public IDecryptionServices DecryptionServices { private set; get; }
#endregion
@@ -208,30 +214,34 @@ namespace YooAsset
public virtual void SetParameter(string name, object value)
{
- if (name == "REMOTE_SERVICES")
+ if (name == FileSystemParameters.REMOTE_SERVICES)
{
RemoteServices = (IRemoteServices)value;
}
- else if (name == "FILE_VERIFY_LEVEL")
+ else if (name == FileSystemParameters.FILE_VERIFY_LEVEL)
{
FileVerifyLevel = (EFileVerifyLevel)value;
}
- else if (name == "APPEND_FILE_EXTENSION")
+ else if (name == FileSystemParameters.APPEND_FILE_EXTENSION)
{
AppendFileExtension = (bool)value;
}
- else if (name == "RAW_FILE_BUILD_PIPELINE")
+ else if (name == FileSystemParameters.RAW_FILE_BUILD_PIPELINE)
{
RawFileBuildPipeline = (bool)value;
}
- else if (name == "RESUME_DOWNLOAD_MINMUM_SIZE")
+ else if (name == FileSystemParameters.RESUME_DOWNLOAD_MINMUM_SIZE)
{
ResumeDownloadMinimumSize = (long)value;
}
- else if (name == "RESUME_DOWNLOAD_RESPONSE_CODES")
+ else if (name == FileSystemParameters.RESUME_DOWNLOAD_RESPONSE_CODES)
{
ResumeDownloadResponseCodes = (List)value;
}
+ else if (name == FileSystemParameters.DECRYPTION_SERVICES)
+ {
+ DecryptionServices = (IDecryptionServices)value;
+ }
else
{
YooLogger.Warning($"Invalid parameter : {name}");
@@ -307,9 +317,19 @@ namespace YooAsset
{
if (Exists(bundle) == false)
return null;
-
string filePath = GetCacheFileLoadPath(bundle);
- return FileUtility.ReadAllBytes(filePath);
+ var data = FileUtility.ReadAllBytes(filePath);
+
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Null!");
+ return null;
+ }
+ return DecryptionServices.ReadFileData(data);
+ }
+ return data;
}
public virtual string ReadFileText(PackageBundle bundle)
{
@@ -317,7 +337,18 @@ namespace YooAsset
return null;
string filePath = GetCacheFileLoadPath(bundle);
- return FileUtility.ReadAllText(filePath);
+ var data = FileUtility.ReadAllBytes(filePath);
+
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Null!");
+ return null;
+ }
+ data = DecryptionServices.ReadFileData(data);
+ }
+ return Encoding.UTF8.GetString(data);
}
#region 内部方法
@@ -528,6 +559,60 @@ namespace YooAsset
{
return _wrappers.Keys.ToList();
}
+
+ internal AssetBundle LoadAssetBundle(PackageBundle bundle)
+ {
+ string filePath = GetCacheFileLoadPath(bundle);
+
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Null!");
+ return null;
+ }
+ else
+ {
+ return DecryptionServices.LoadAssetBundle(new DecryptFileInfo()
+ {
+ BundleName = bundle.BundleName,
+ FileLoadCRC = bundle.UnityCRC,
+ FileLoadPath = filePath,
+ }, out _);
+ }
+ }
+ else
+ {
+ return AssetBundle.LoadFromFile(filePath);
+ }
+ }
+
+ internal AssetBundleCreateRequest LoadAssetBundleAsync(PackageBundle bundle)
+ {
+ string filePath = GetCacheFileLoadPath(bundle);
+
+ if (bundle.Encrypted)
+ {
+ if (DecryptionServices == null)
+ {
+ YooLogger.Error($"DecryptionServices is Empty!");
+ return null;
+ }
+ else
+ {
+ return DecryptionServices.LoadAssetBundleAsync(new DecryptFileInfo()
+ {
+ BundleName = bundle.BundleName,
+ FileLoadCRC = bundle.UnityCRC,
+ FileLoadPath = filePath,
+ }, out _);
+ }
+ }
+ else
+ {
+ return AssetBundle.LoadFromFileAsync(filePath);
+ }
+ }
#endregion
}
}
\ 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 0f4238d..6b61010 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
@@ -78,15 +78,15 @@ namespace YooAsset
if (_steps == ESteps.LoadAssetBundle)
{
- string filePath = _fileSystem.GetCacheFileLoadPath(_bundle);
if (_isWaitForAsyncComplete)
{
- Result = AssetBundle.LoadFromFile(filePath);
+ Result = _fileSystem.LoadAssetBundle(_bundle);
}
else
{
- _createRequest = AssetBundle.LoadFromFileAsync(filePath);
+ _createRequest = _fileSystem.LoadAssetBundleAsync(_bundle);
}
+
_steps = ESteps.CheckResult;
}
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultWebFileSystem/DefaultWebFileSystem.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultWebFileSystem/DefaultWebFileSystem.cs
index 684984a..eedbf66 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultWebFileSystem/DefaultWebFileSystem.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultWebFileSystem/DefaultWebFileSystem.cs
@@ -114,7 +114,7 @@ namespace YooAsset
public virtual void SetParameter(string name, object value)
{
- if (name == "DISABLE_UNITY_WEB_CACHE")
+ if (name == FileSystemParameters.DISABLE_UNITY_WEB_CACHE)
{
DisableUnityWebCache = (bool)value;
}
diff --git a/Assets/YooAsset/Runtime/InitializeParameters.cs b/Assets/YooAsset/Runtime/InitializeParameters.cs
index 25076f7..8ae2684 100644
--- a/Assets/YooAsset/Runtime/InitializeParameters.cs
+++ b/Assets/YooAsset/Runtime/InitializeParameters.cs
@@ -55,6 +55,15 @@ namespace YooAsset
///
public class FileSystemParameters
{
+ public const string FILE_VERIFY_LEVEL = "FILE_VERIFY_LEVEL";
+ public const string DECRYPTION_SERVICES = "DECRYPTION_SERVICES";
+ public const string APPEND_FILE_EXTENSION = "APPEND_FILE_EXTENSION";
+ public const string RAW_FILE_BUILD_PIPELINE = "RAW_FILE_BUILD_PIPELINE";
+ public const string REMOTE_SERVICES = "REMOTE_SERVICES";
+ public const string DISABLE_UNITY_WEB_CACHE = "DISABLE_UNITY_WEB_CACHE";
+ public const string RESUME_DOWNLOAD_MINMUM_SIZE = "RESUME_DOWNLOAD_MINMUM_SIZE";
+ public const string RESUME_DOWNLOAD_RESPONSE_CODES = "RESUME_DOWNLOAD_RESPONSE_CODES";
+
internal Dictionary CreateParameters = new Dictionary();
///
@@ -101,11 +110,12 @@ namespace YooAsset
///
/// 缓存文件的校验等级
/// 内置文件的根路径
- public static FileSystemParameters CreateDefaultBuildinFileSystemParameters(EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
+ public static FileSystemParameters CreateDefaultBuildinFileSystemParameters(IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultBuildinFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
- fileSystemParams.AddParameter("FILE_VERIFY_LEVEL", verifyLevel);
+ fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
+ fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
@@ -114,13 +124,14 @@ namespace YooAsset
///
/// 缓存文件的校验等级
/// 内置文件的根路径
- public static FileSystemParameters CreateDefaultBuildinRawFileSystemParameters(EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
+ public static FileSystemParameters CreateDefaultBuildinRawFileSystemParameters(IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultBuildinFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
- fileSystemParams.AddParameter("FILE_VERIFY_LEVEL", verifyLevel);
- fileSystemParams.AddParameter("APPEND_FILE_EXTENSION", true);
- fileSystemParams.AddParameter("RAW_FILE_BUILD_PIPELINE", true);
+ fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
+ fileSystemParams.AddParameter(APPEND_FILE_EXTENSION, true);
+ fileSystemParams.AddParameter(RAW_FILE_BUILD_PIPELINE, true);
+ fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
@@ -130,12 +141,13 @@ namespace YooAsset
/// 远端资源地址查询服务类
/// 缓存文件的校验等级
/// 文件系统的根目录
- public static FileSystemParameters CreateDefaultCacheFileSystemParameters(IRemoteServices remoteServices, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
+ public static FileSystemParameters CreateDefaultCacheFileSystemParameters(IRemoteServices remoteServices, IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultCacheFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
- fileSystemParams.AddParameter("REMOTE_SERVICES", remoteServices);
- fileSystemParams.AddParameter("FILE_VERIFY_LEVEL", verifyLevel);
+ fileSystemParams.AddParameter(REMOTE_SERVICES, remoteServices);
+ fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
+ fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
@@ -145,14 +157,15 @@ namespace YooAsset
/// 远端资源地址查询服务类
/// 缓存文件的校验等级
/// 文件系统的根目录
- public static FileSystemParameters CreateDefaultCacheRawFileSystemParameters(IRemoteServices remoteServices, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
+ public static FileSystemParameters CreateDefaultCacheRawFileSystemParameters(IRemoteServices remoteServices, IDecryptionServices decryptionServices = null, EFileVerifyLevel verifyLevel = EFileVerifyLevel.Middle, string rootDirectory = null)
{
string fileSystemClass = typeof(DefaultCacheFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, rootDirectory);
- fileSystemParams.AddParameter("REMOTE_SERVICES", remoteServices);
- fileSystemParams.AddParameter("FILE_VERIFY_LEVEL", verifyLevel);
- fileSystemParams.AddParameter("APPEND_FILE_EXTENSION", true);
- fileSystemParams.AddParameter("RAW_FILE_BUILD_PIPELINE", true);
+ fileSystemParams.AddParameter(REMOTE_SERVICES, remoteServices);
+ fileSystemParams.AddParameter(FILE_VERIFY_LEVEL, verifyLevel);
+ fileSystemParams.AddParameter(APPEND_FILE_EXTENSION, true);
+ fileSystemParams.AddParameter(RAW_FILE_BUILD_PIPELINE, true);
+ fileSystemParams.AddParameter(DECRYPTION_SERVICES, decryptionServices);
return fileSystemParams;
}
@@ -164,7 +177,7 @@ namespace YooAsset
{
string fileSystemClass = typeof(DefaultWebFileSystem).FullName;
var fileSystemParams = new FileSystemParameters(fileSystemClass, null);
- fileSystemParams.AddParameter("DISABLE_UNITY_WEB_CACHE", disableUnityWebCache);
+ fileSystemParams.AddParameter(DISABLE_UNITY_WEB_CACHE, disableUnityWebCache);
return fileSystemParams;
}
}
diff --git a/Assets/YooAsset/Runtime/Services/IDecryptionServices.cs b/Assets/YooAsset/Runtime/Services/IDecryptionServices.cs
index 9f7f6f5..0fa1c48 100644
--- a/Assets/YooAsset/Runtime/Services/IDecryptionServices.cs
+++ b/Assets/YooAsset/Runtime/Services/IDecryptionServices.cs
@@ -34,5 +34,12 @@ namespace YooAsset
/// 注意:加载流对象在资源包对象释放的时候会自动释放
///
AssetBundleCreateRequest LoadAssetBundleAsync(DecryptFileInfo fileInfo, out Stream managedStream);
+
+ ///
+ /// 解密字节数据
+ ///
+ ///
+ ///
+ byte[] ReadFileData(byte[] encryptData);
}
-}
\ No newline at end of file
+}