AllAssetsHandle.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System.Collections.Generic;
  2. namespace YooAsset
  3. {
  4. public sealed class AllAssetsHandle : HandleBase
  5. {
  6. private System.Action<AllAssetsHandle> _callback;
  7. internal AllAssetsHandle(ProviderOperation provider) : base(provider)
  8. {
  9. }
  10. internal override void InvokeCallback()
  11. {
  12. _callback?.Invoke(this);
  13. }
  14. /// <summary>
  15. /// 完成委托
  16. /// </summary>
  17. public event System.Action<AllAssetsHandle> Completed
  18. {
  19. add
  20. {
  21. if (IsValidWithWarning == false)
  22. throw new System.Exception($"{nameof(AllAssetsHandle)} is invalid");
  23. if (Provider.IsDone)
  24. value.Invoke(this);
  25. else
  26. _callback += value;
  27. }
  28. remove
  29. {
  30. if (IsValidWithWarning == false)
  31. throw new System.Exception($"{nameof(AllAssetsHandle)} is invalid");
  32. _callback -= value;
  33. }
  34. }
  35. /// <summary>
  36. /// 等待异步执行完毕
  37. /// </summary>
  38. public void WaitForAsyncComplete()
  39. {
  40. if (IsValidWithWarning == false)
  41. return;
  42. Provider.WaitForAsyncComplete();
  43. }
  44. /// <summary>
  45. /// 子资源对象集合
  46. /// </summary>
  47. public IReadOnlyList<UnityEngine.Object> AllAssetObjects
  48. {
  49. get
  50. {
  51. if (IsValidWithWarning == false)
  52. return null;
  53. return Provider.AllAssetObjects;
  54. }
  55. }
  56. }
  57. }