Files
YooAsset/Assets/YooAsset/Runtime/Services/IBundleDecryptionServices.cs

109 lines
2.9 KiB
C#
Raw Normal View History

2023-09-20 16:09:52 +08:00
using System.IO;
using UnityEngine;
2022-03-09 23:57:04 +08:00
namespace YooAsset
{
2026-01-16 10:28:01 +08:00
public struct DecryptBundleInfo
2023-12-21 19:10:46 +08:00
{
/// <summary>
/// 资源包名称
/// </summary>
public string BundleName;
2023-12-21 19:10:46 +08:00
/// <summary>
/// 文件加载路径
/// </summary>
public string FileLoadPath;
2023-09-20 16:09:52 +08:00
2023-12-21 19:10:46 +08:00
/// <summary>
/// Unity引擎用于内容校验的CRC
/// </summary>
public uint FileLoadCRC;
2023-12-21 19:10:46 +08:00
}
2026-01-16 10:28:01 +08:00
public struct DecryptAsyncResult
{
/// <summary>
/// 异步请求句柄
/// </summary>
public AssetBundleCreateRequest CreateRequest;
/// <summary>
/// 托管流对象
/// 注意:流对象在资源包对象释放的时候会自动释放
/// </summary>
public Stream ManagedStream;
}
2026-01-16 10:28:01 +08:00
public struct DecryptSyncResult
{
/// <summary>
/// 资源包对象
/// </summary>
public AssetBundle Result;
2026-01-16 10:28:01 +08:00
/// <summary>
/// 托管流对象
/// 注意:流对象在资源包对象释放的时候会自动释放
/// </summary>
public Stream ManagedStream;
}
public interface IBundleDecryptionServices
2023-12-21 19:10:46 +08:00
{
/// <summary>
2025-06-20 11:29:22 +08:00
/// 同步方式获取解密的资源包
2023-12-21 19:10:46 +08:00
/// </summary>
2026-01-16 10:28:01 +08:00
DecryptSyncResult LoadAssetBundleSync(DecryptBundleInfo bundleInfo);
2023-12-21 19:10:46 +08:00
/// <summary>
2025-06-20 11:29:22 +08:00
/// 异步方式获取解密的资源包
2023-12-21 19:10:46 +08:00
/// </summary>
2026-01-16 10:28:01 +08:00
DecryptAsyncResult LoadAssetBundleAsync(DecryptBundleInfo bundleInfo);
2024-07-27 18:37:17 +08:00
2025-06-17 17:07:02 +08:00
/// <summary>
2025-06-20 11:29:22 +08:00
/// 后备方式获取解密的资源包
2025-06-17 17:07:02 +08:00
/// 注意:当正常解密方法失败后,会触发后备加载!
2025-06-20 11:29:22 +08:00
/// 说明建议通过LoadFromMemory()方法加载资源包作为保底机制。
2025-06-17 17:07:02 +08:00
/// issues : https://github.com/tuyoogame/YooAsset/issues/562
/// </summary>
2026-01-16 10:28:01 +08:00
DecryptSyncResult LoadAssetBundleFallback(DecryptBundleInfo bundleInfo);
2025-06-20 11:29:22 +08:00
2024-07-27 18:37:17 +08:00
/// <summary>
/// 获取解密的字节数据
2024-07-27 18:37:17 +08:00
/// </summary>
2026-01-16 10:28:01 +08:00
byte[] ReadFileData(DecryptBundleInfo bundleInfo);
/// <summary>
/// 获取解密的文本数据
/// </summary>
2026-01-16 10:28:01 +08:00
string ReadFileText(DecryptBundleInfo bundleInfo);
}
public struct WebDecryptBundleInfo
{
/// <summary>
/// 资源包名称
/// </summary>
public string BundleName;
/// <summary>
/// Unity引擎用于内容校验的CRC
/// </summary>
public uint FileLoadCRC;
/// <summary>
/// 文件字节数据
/// </summary>
public byte[] FileData;
}
public struct WebDecryptSyncResult
{
/// <summary>
/// 资源包对象
/// </summary>
public AssetBundle Result;
}
public interface IWebBundleDecryptionServices
{
WebDecryptSyncResult LoadAssetBundleSync(WebDecryptBundleInfo bundleInfo);
2023-12-21 19:10:46 +08:00
}
2024-07-29 14:34:21 +08:00
}