ResourceLoader.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System.IO;
  2. using UnityEngine;
  3. //using UnityEditor;
  4. using XRTool.Util;
  5. namespace ShadowStudio.Util
  6. {
  7. /// <summary>
  8. /// 资源加载代理
  9. /// 支持Resource,Assetbundle,AssetDatabase 加载
  10. /// 其中Resource仅支持Resources路径下加载
  11. /// Assetbundle仅支持ab包加载,需要先将资源打包成Assetbundle
  12. /// AssetDatabase仅支持编辑器下加载资源
  13. /// </summary>
  14. public class ResourceLoader : Singleton<ResourceLoader>, DataLoad
  15. {
  16. public Object Load(string path)
  17. {
  18. path = Path.GetFileNameWithoutExtension(path);
  19. return Resources.Load(path);
  20. }
  21. public T Load<T>(string path) where T : Object
  22. {
  23. path = Path.GetFileNameWithoutExtension(path);
  24. return Resources.Load<T>(path);
  25. }
  26. public Object Load(string path, System.Type systemTypeInstance)
  27. {
  28. path = Path.GetFileNameWithoutExtension(path);
  29. return Resources.Load(path, systemTypeInstance);
  30. }
  31. public T[] LoadAll<T>(string path) where T : Object
  32. {
  33. path = Path.GetFileNameWithoutExtension(path);
  34. return Resources.LoadAll<T>(path);
  35. }
  36. public Object[] LoadAll(string path, System.Type systemTypeInstance)
  37. {
  38. path = Path.GetFileNameWithoutExtension(path);
  39. return Resources.LoadAll(path, systemTypeInstance);
  40. }
  41. public Object[] LoadAll(string path)
  42. {
  43. path = Path.GetFileNameWithoutExtension(path);
  44. return Resources.LoadAll(path);
  45. }
  46. public LoadInfo LoadAsync<T>(string path) where T : Object
  47. {
  48. path = Path.GetFileNameWithoutExtension(path);
  49. LoadInfo info = new LoadInfo();
  50. info.InitLoadInfo(Resources.LoadAsync<T>(path));
  51. return info;
  52. }
  53. public LoadInfo LoadAsync(string path)
  54. {
  55. path = Path.GetFileNameWithoutExtension(path);
  56. LoadInfo info = new LoadInfo();
  57. info.InitLoadInfo(Resources.LoadAsync(path));
  58. return info;
  59. }
  60. public LoadInfo LoadAsync(string path, System.Type type)
  61. {
  62. path = Path.GetFileNameWithoutExtension(path);
  63. LoadInfo info = new LoadInfo();
  64. info.InitLoadInfo(Resources.LoadAsync(path, type));
  65. return info;
  66. }
  67. public void UnloadAsset(Object assetToUnload)
  68. {
  69. Resources.UnloadAsset(assetToUnload);
  70. }
  71. public void UnloadAllAsset()
  72. {
  73. Resources.UnloadUnusedAssets();
  74. }
  75. }
  76. }