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;
|
2022-11-02 21:54:44 +08:00
|
|
|
|
|
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>
|
2024-07-04 20:36:26 +08:00
|
|
|
|
public uint FileLoadCRC;
|
2023-12-21 19:10:46 +08:00
|
|
|
|
}
|
2026-01-16 10:28:01 +08:00
|
|
|
|
public struct DecryptAsyncResult
|
2024-12-24 18:45:37 +08:00
|
|
|
|
{
|
|
|
|
|
|
/// <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;
|
2022-07-13 10:48:49 +08:00
|
|
|
|
|
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);
|
2022-11-02 21:54:44 +08:00
|
|
|
|
|
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-08-03 18:43:12 +08:00
|
|
|
|
/// 获取解密的字节数据
|
2024-07-27 18:37:17 +08:00
|
|
|
|
/// </summary>
|
2026-01-16 10:28:01 +08:00
|
|
|
|
byte[] ReadFileData(DecryptBundleInfo bundleInfo);
|
2024-08-03 18:43:12 +08:00
|
|
|
|
|
|
|
|
|
|
/// <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
|
|
|
|
}
|