BundleAssetLoadTask.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Fort23.UTool;
  2. #if !COMBAT_SERVER
  3. namespace Core.AssetLoadTool.Asset
  4. {
  5. public class BundleAssetLoadTask : AssetLoadTaskBasic
  6. {
  7. protected BundleLoadBasic _bundleLoadTask;
  8. protected override void StartLoadAsset<T>()
  9. {
  10. BundleLoadBasic bundleLoadBasic= AssetBundleLoadManager.Instance.AddBundleTask(_assetInfo.bundle,
  11. async delegate(BundleLoadBasic bundleLoad, object data)
  12. {
  13. if (bundleLoad == null)
  14. {
  15. CallErrorBack();
  16. return;
  17. }
  18. // if (!_assetInfo.bundle.Equals(bundleLoad.bundleName))
  19. // {
  20. // LogTool.Error(bundleLoad.bundleName + "budnle名和加载名不同" + _assetInfo.bundle);
  21. // }
  22. this._bundleLoadTask = bundleLoad;
  23. try
  24. {
  25. T objAsset = await bundleLoad.LoadAsset<T>(_assetInfo.name);
  26. if (objAsset == null)
  27. {
  28. LogTool.Error(_assetInfo.name + "资源加载失败" + _assetInfo.bundle);
  29. CallErrorBack();
  30. return;
  31. }
  32. LoadFinish<T>(objAsset);
  33. }
  34. catch (System.Exception e)
  35. {
  36. LogTool.Error(_assetInfo.name + "资源加载失败" + _assetInfo.bundle + " " + e.Message);
  37. }
  38. },this);
  39. }
  40. protected override void ProDispose()
  41. {
  42. if (_bundleLoadTask != null)
  43. {
  44. _bundleLoadTask.RemoveAsset(_assetInfo.name);
  45. _bundleLoadTask.RemoveOwnTask(this);
  46. _bundleLoadTask = null;
  47. }
  48. }
  49. }
  50. }
  51. #endif