ResourceManager.ResourceLoader.LoadAssetTask.cs 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using System;
  8. namespace GameFramework.Resource
  9. {
  10. internal sealed partial class ResourceManager : GameFrameworkModule, IResourceManager
  11. {
  12. private sealed partial class ResourceLoader
  13. {
  14. private sealed class LoadAssetTask : LoadResourceTaskBase
  15. {
  16. private LoadAssetCallbacks m_LoadAssetCallbacks;
  17. public LoadAssetTask()
  18. {
  19. m_LoadAssetCallbacks = null;
  20. }
  21. public override bool IsScene
  22. {
  23. get
  24. {
  25. return false;
  26. }
  27. }
  28. public static LoadAssetTask Create(string assetName, Type assetType, int priority, ResourceInfo resourceInfo, string[] dependencyAssetNames, LoadAssetCallbacks loadAssetCallbacks, object userData)
  29. {
  30. LoadAssetTask loadAssetTask = ReferencePool.Acquire<LoadAssetTask>();
  31. loadAssetTask.Initialize(assetName, assetType, priority, resourceInfo, dependencyAssetNames, userData);
  32. loadAssetTask.m_LoadAssetCallbacks = loadAssetCallbacks;
  33. return loadAssetTask;
  34. }
  35. public override void Clear()
  36. {
  37. base.Clear();
  38. m_LoadAssetCallbacks = null;
  39. }
  40. public override void OnLoadAssetSuccess(LoadResourceAgent agent, object asset, float duration)
  41. {
  42. base.OnLoadAssetSuccess(agent, asset, duration);
  43. if (m_LoadAssetCallbacks.LoadAssetSuccessCallback != null)
  44. {
  45. m_LoadAssetCallbacks.LoadAssetSuccessCallback(AssetName, asset, duration, UserData);
  46. }
  47. }
  48. public override void OnLoadAssetFailure(LoadResourceAgent agent, LoadResourceStatus status, string errorMessage)
  49. {
  50. base.OnLoadAssetFailure(agent, status, errorMessage);
  51. if (m_LoadAssetCallbacks.LoadAssetFailureCallback != null)
  52. {
  53. m_LoadAssetCallbacks.LoadAssetFailureCallback(AssetName, status, errorMessage, UserData);
  54. }
  55. }
  56. public override void OnLoadAssetUpdate(LoadResourceAgent agent, LoadResourceProgress type, float progress)
  57. {
  58. base.OnLoadAssetUpdate(agent, type, progress);
  59. if (type == LoadResourceProgress.LoadAsset)
  60. {
  61. if (m_LoadAssetCallbacks.LoadAssetUpdateCallback != null)
  62. {
  63. m_LoadAssetCallbacks.LoadAssetUpdateCallback(AssetName, progress, UserData);
  64. }
  65. }
  66. }
  67. public override void OnLoadDependencyAsset(LoadResourceAgent agent, string dependencyAssetName, object dependencyAsset)
  68. {
  69. base.OnLoadDependencyAsset(agent, dependencyAssetName, dependencyAsset);
  70. if (m_LoadAssetCallbacks.LoadAssetDependencyAssetCallback != null)
  71. {
  72. m_LoadAssetCallbacks.LoadAssetDependencyAssetCallback(AssetName, dependencyAssetName, LoadedDependencyAssetCount, TotalDependencyAssetCount, UserData);
  73. }
  74. }
  75. }
  76. }
  77. }
  78. }