BundledRawFileProvider.cs 999 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 
  2. namespace YooAsset
  3. {
  4. internal class BundledRawFileProvider : ProviderBase
  5. {
  6. public BundledRawFileProvider(AssetSystemImpl impl, string providerGUID, AssetInfo assetInfo) : base(impl, providerGUID, assetInfo)
  7. {
  8. }
  9. public override void Update()
  10. {
  11. DebugBeginRecording();
  12. if (IsDone)
  13. return;
  14. if (Status == EStatus.None)
  15. {
  16. Status = EStatus.CheckBundle;
  17. }
  18. // 1. 检测资源包
  19. if (Status == EStatus.CheckBundle)
  20. {
  21. if (IsWaitForAsyncComplete)
  22. {
  23. OwnerBundle.WaitForAsyncComplete();
  24. }
  25. if (OwnerBundle.IsDone() == false)
  26. return;
  27. if (OwnerBundle.Status != BundleLoaderBase.EStatus.Succeed)
  28. {
  29. Status = EStatus.Failed;
  30. LastError = OwnerBundle.LastError;
  31. InvokeCompletion();
  32. return;
  33. }
  34. Status = EStatus.Checking;
  35. }
  36. // 2. 检测加载结果
  37. if (Status == EStatus.Checking)
  38. {
  39. RawFilePath = OwnerBundle.FileLoadPath;
  40. Status = EStatus.Succeed;
  41. InvokeCompletion();
  42. }
  43. }
  44. }
  45. }