IDecryptionServices.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System.IO;
  2. using UnityEngine;
  3. namespace YooAsset
  4. {
  5. public struct DecryptFileInfo
  6. {
  7. /// <summary>
  8. /// 资源包名称
  9. /// </summary>
  10. public string BundleName;
  11. /// <summary>
  12. /// 文件加载路径
  13. /// </summary>
  14. public string FileLoadPath;
  15. /// <summary>
  16. /// Unity引擎用于内容校验的CRC
  17. /// </summary>
  18. public uint FileLoadCRC;
  19. }
  20. public struct DecryptResult
  21. {
  22. /// <summary>
  23. /// 资源包对象
  24. /// </summary>
  25. public AssetBundle Result;
  26. /// <summary>
  27. /// 异步请求句柄
  28. /// </summary>
  29. public AssetBundleCreateRequest CreateRequest;
  30. /// <summary>
  31. /// 托管流对象
  32. /// 注意:流对象在资源包对象释放的时候会自动释放
  33. /// </summary>
  34. public Stream ManagedStream;
  35. }
  36. public interface IDecryptionServices
  37. {
  38. /// <summary>
  39. /// 同步方式获取解密的资源包对象
  40. /// </summary>
  41. DecryptResult LoadAssetBundle(DecryptFileInfo fileInfo);
  42. /// <summary>
  43. /// 异步方式获取解密的资源包对象
  44. /// </summary>
  45. DecryptResult LoadAssetBundleAsync(DecryptFileInfo fileInfo);
  46. /// <summary>
  47. /// 获取解密的字节数据
  48. /// </summary>
  49. byte[] ReadFileData(DecryptFileInfo fileInfo);
  50. /// <summary>
  51. /// 获取解密的文本数据
  52. /// </summary>
  53. string ReadFileText(DecryptFileInfo fileInfo);
  54. }
  55. }