BundleInfo.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. 
  2. namespace YooAsset
  3. {
  4. internal class BundleInfo
  5. {
  6. public enum ELoadMode
  7. {
  8. None,
  9. LoadFromStreaming,
  10. LoadFromCache,
  11. LoadFromRemote,
  12. LoadFromEditor,
  13. }
  14. public readonly PatchBundle Bundle;
  15. public readonly ELoadMode LoadMode;
  16. /// <summary>
  17. /// 远端下载地址
  18. /// </summary>
  19. public string RemoteMainURL { private set; get; }
  20. /// <summary>
  21. /// 远端下载备用地址
  22. /// </summary>
  23. public string RemoteFallbackURL { private set; get; }
  24. /// <summary>
  25. /// 编辑器资源路径
  26. /// </summary>
  27. public string EditorAssetPath { private set; get; }
  28. private BundleInfo()
  29. {
  30. }
  31. public BundleInfo(PatchBundle patchBundle, ELoadMode loadMode, string mainURL, string fallbackURL)
  32. {
  33. Bundle = patchBundle;
  34. LoadMode = loadMode;
  35. RemoteMainURL = mainURL;
  36. RemoteFallbackURL = fallbackURL;
  37. EditorAssetPath = string.Empty;
  38. }
  39. public BundleInfo(PatchBundle patchBundle, ELoadMode loadMode, string editorAssetPath)
  40. {
  41. Bundle = patchBundle;
  42. LoadMode = loadMode;
  43. RemoteMainURL = string.Empty;
  44. RemoteFallbackURL = string.Empty;
  45. EditorAssetPath = editorAssetPath;
  46. }
  47. public BundleInfo(PatchBundle patchBundle, ELoadMode loadMode)
  48. {
  49. Bundle = patchBundle;
  50. LoadMode = loadMode;
  51. RemoteMainURL = string.Empty;
  52. RemoteFallbackURL = string.Empty;
  53. EditorAssetPath = string.Empty;
  54. }
  55. /// <summary>
  56. /// 是否为JAR包内文件
  57. /// </summary>
  58. public static bool IsBuildinJarFile(string streamingPath)
  59. {
  60. return streamingPath.StartsWith("jar:");
  61. }
  62. }
  63. }