SubAssetsProvider.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. 
  2. namespace YooAsset
  3. {
  4. internal sealed class SubAssetsProvider : ProviderOperation
  5. {
  6. private FSLoadSubAssetsOperation _loadSubAssetsOp;
  7. public SubAssetsProvider(ResourceManager manager, string providerGUID, AssetInfo assetInfo) : base(manager, providerGUID, assetInfo)
  8. {
  9. }
  10. protected override void ProcessBundleResult()
  11. {
  12. if (_loadSubAssetsOp == null)
  13. {
  14. _loadSubAssetsOp = BundleResultObject.LoadSubAssetsAsync(MainAssetInfo);
  15. _loadSubAssetsOp.StartOperation();
  16. AddChildOperation(_loadSubAssetsOp);
  17. }
  18. if (IsWaitForAsyncComplete)
  19. _loadSubAssetsOp.WaitForAsyncComplete();
  20. _loadSubAssetsOp.UpdateOperation();
  21. Progress = _loadSubAssetsOp.Progress;
  22. if (_loadSubAssetsOp.IsDone == false)
  23. return;
  24. if (_loadSubAssetsOp.Status != EOperationStatus.Succeed)
  25. {
  26. InvokeCompletion(_loadSubAssetsOp.Error, EOperationStatus.Failed);
  27. }
  28. else
  29. {
  30. SubAssetObjects = _loadSubAssetsOp.Result;
  31. InvokeCompletion(string.Empty, EOperationStatus.Succeed);
  32. }
  33. }
  34. }
  35. }