ResourceManager.ResourceLoader.LoadDependencyAssetTask.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. namespace GameFramework.Resource
  8. {
  9. internal sealed partial class ResourceManager : GameFrameworkModule, IResourceManager
  10. {
  11. private sealed partial class ResourceLoader
  12. {
  13. private sealed class LoadDependencyAssetTask : LoadResourceTaskBase
  14. {
  15. private LoadResourceTaskBase m_MainTask;
  16. public LoadDependencyAssetTask()
  17. {
  18. m_MainTask = null;
  19. }
  20. public override bool IsScene
  21. {
  22. get
  23. {
  24. return false;
  25. }
  26. }
  27. public static LoadDependencyAssetTask Create(string assetName, int priority, ResourceInfo resourceInfo, string[] dependencyAssetNames, LoadResourceTaskBase mainTask, object userData)
  28. {
  29. LoadDependencyAssetTask loadDependencyAssetTask = ReferencePool.Acquire<LoadDependencyAssetTask>();
  30. loadDependencyAssetTask.Initialize(assetName, null, priority, resourceInfo, dependencyAssetNames, userData);
  31. loadDependencyAssetTask.m_MainTask = mainTask;
  32. loadDependencyAssetTask.m_MainTask.TotalDependencyAssetCount++;
  33. return loadDependencyAssetTask;
  34. }
  35. public override void Clear()
  36. {
  37. base.Clear();
  38. m_MainTask = null;
  39. }
  40. public override void OnLoadAssetSuccess(LoadResourceAgent agent, object asset, float duration)
  41. {
  42. base.OnLoadAssetSuccess(agent, asset, duration);
  43. m_MainTask.OnLoadDependencyAsset(agent, AssetName, asset);
  44. }
  45. public override void OnLoadAssetFailure(LoadResourceAgent agent, LoadResourceStatus status, string errorMessage)
  46. {
  47. base.OnLoadAssetFailure(agent, status, errorMessage);
  48. m_MainTask.OnLoadAssetFailure(agent, LoadResourceStatus.DependencyError, Utility.Text.Format("Can not load dependency asset '{0}', internal status '{1}', internal error message '{2}'.", AssetName, status, errorMessage));
  49. }
  50. }
  51. }
  52. }
  53. }