Unity 框架

LoadResHandle.cs 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace TFramework
  5. {
  6. public class LoadResHandle<T> : IReference
  7. {
  8. /// <summary>
  9. /// 资源加载模式
  10. /// </summary>
  11. public ResLoadMode LoadMode;
  12. /// <summary>
  13. /// Resource资源路径
  14. /// </summary>
  15. public string ResourcePath;
  16. /// <summary>
  17. /// AssetBundle包名
  18. /// </summary>
  19. public string AssetBundleName;
  20. /// <summary>
  21. /// 资源相对路径(用于AB包及Editor模式)
  22. /// </summary>
  23. public string AssetPath;
  24. /// <summary>
  25. /// 加载中事件
  26. /// </summary>
  27. public TAction<float> OnLoading;
  28. /// <summary>
  29. /// 加载完成事件
  30. /// </summary>
  31. public TAction<T> OnLoadOver;
  32. public LoadResHandle()
  33. {
  34. }
  35. public LoadResHandle(ResLoadMode resLoadMode, string resourePath, string assetbundleName, string assetPath, TAction<float> onLoading = null, TAction<T> onLoadOver = null)
  36. {
  37. LoadMode = resLoadMode;
  38. ResourcePath = resourePath;
  39. AssetBundleName = assetbundleName;
  40. AssetPath = assetPath;
  41. OnLoading = onLoading;
  42. OnLoadOver = onLoadOver;
  43. }
  44. /// <summary>
  45. /// Resource模式加载
  46. /// </summary>
  47. /// <param name="resourePath"></param>
  48. /// <param name="onLoading"></param>
  49. /// <param name="onLoadOver"></param>
  50. public LoadResHandle(string resourePath, TAction<float> onLoading = null, TAction<T> onLoadOver = null)
  51. {
  52. LoadMode = ResLoadMode.Resourece;
  53. ResourcePath = resourePath;
  54. AssetPath = resourePath;
  55. OnLoading = onLoading;
  56. OnLoadOver = onLoadOver;
  57. }
  58. /// <summary>
  59. /// AB包模式加载
  60. /// </summary>
  61. /// <param name="assetbundleName"></param>
  62. /// <param name="assetPath"></param>
  63. /// <param name="onLoading"></param>
  64. /// <param name="onLoadOver"></param>
  65. public LoadResHandle(string assetbundleName, string assetPath, TAction<float> onLoading = null, TAction<T> onLoadOver = null)
  66. {
  67. LoadMode = ResLoadMode.AssetBundle;
  68. AssetBundleName = assetbundleName;
  69. AssetPath = assetPath;
  70. OnLoading = onLoading;
  71. OnLoadOver = onLoadOver;
  72. }
  73. public LoadResHandle(UIResourceAttribute attribute, TAction<float> onLoading = null, TAction<T> onLoadOver = null)
  74. {
  75. LoadMode = attribute.LoadMode;
  76. ResourcePath = attribute.ResourcePath;
  77. AssetBundleName = attribute.AssetBundleName;
  78. AssetPath = attribute.AssetPath;
  79. OnLoading = onLoading;
  80. OnLoadOver = onLoadOver;
  81. }
  82. public void Reset()
  83. {
  84. OnLoading = null;
  85. OnLoadOver = null;
  86. ResourcePath = string.Empty;
  87. AssetBundleName = string.Empty;
  88. AssetPath = string.Empty;
  89. }
  90. }
  91. }