ResourceManager.ResourceLoader.LoadSceneTask.cs 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 LoadSceneTask : LoadResourceTaskBase
  14. {
  15. private LoadSceneCallbacks m_LoadSceneCallbacks;
  16. public LoadSceneTask()
  17. {
  18. m_LoadSceneCallbacks = null;
  19. }
  20. public override bool IsScene
  21. {
  22. get
  23. {
  24. return true;
  25. }
  26. }
  27. public static LoadSceneTask Create(string sceneAssetName, int priority, ResourceInfo resourceInfo, string[] dependencyAssetNames, LoadSceneCallbacks loadSceneCallbacks, object userData)
  28. {
  29. LoadSceneTask loadSceneTask = ReferencePool.Acquire<LoadSceneTask>();
  30. loadSceneTask.Initialize(sceneAssetName, null, priority, resourceInfo, dependencyAssetNames, userData);
  31. loadSceneTask.m_LoadSceneCallbacks = loadSceneCallbacks;
  32. return loadSceneTask;
  33. }
  34. public override void Clear()
  35. {
  36. base.Clear();
  37. m_LoadSceneCallbacks = null;
  38. }
  39. public override void OnLoadAssetSuccess(LoadResourceAgent agent, object asset, float duration)
  40. {
  41. base.OnLoadAssetSuccess(agent, asset, duration);
  42. if (m_LoadSceneCallbacks.LoadSceneSuccessCallback != null)
  43. {
  44. m_LoadSceneCallbacks.LoadSceneSuccessCallback(AssetName, duration, UserData);
  45. }
  46. }
  47. public override void OnLoadAssetFailure(LoadResourceAgent agent, LoadResourceStatus status, string errorMessage)
  48. {
  49. base.OnLoadAssetFailure(agent, status, errorMessage);
  50. if (m_LoadSceneCallbacks.LoadSceneFailureCallback != null)
  51. {
  52. m_LoadSceneCallbacks.LoadSceneFailureCallback(AssetName, status, errorMessage, UserData);
  53. }
  54. }
  55. public override void OnLoadAssetUpdate(LoadResourceAgent agent, LoadResourceProgress type, float progress)
  56. {
  57. base.OnLoadAssetUpdate(agent, type, progress);
  58. if (type == LoadResourceProgress.LoadScene)
  59. {
  60. if (m_LoadSceneCallbacks.LoadSceneUpdateCallback != null)
  61. {
  62. m_LoadSceneCallbacks.LoadSceneUpdateCallback(AssetName, progress, UserData);
  63. }
  64. }
  65. }
  66. public override void OnLoadDependencyAsset(LoadResourceAgent agent, string dependencyAssetName, object dependencyAsset)
  67. {
  68. base.OnLoadDependencyAsset(agent, dependencyAssetName, dependencyAsset);
  69. if (m_LoadSceneCallbacks.LoadSceneDependencyAssetCallback != null)
  70. {
  71. m_LoadSceneCallbacks.LoadSceneDependencyAssetCallback(AssetName, dependencyAssetName, LoadedDependencyAssetCount, TotalDependencyAssetCount, UserData);
  72. }
  73. }
  74. }
  75. }
  76. }
  77. }