DWSFSInitializeOperation.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. 
  2. namespace YooAsset
  3. {
  4. internal class DWSFSInitializeOperation : FSInitializeFileSystemOperation
  5. {
  6. private enum ESteps
  7. {
  8. None,
  9. LoadCatalogFile,
  10. Done,
  11. }
  12. private readonly DefaultWebServerFileSystem _fileSystem;
  13. private LoadWebServerCatalogFileOperation _loadCatalogFileOp;
  14. private ESteps _steps = ESteps.None;
  15. public DWSFSInitializeOperation(DefaultWebServerFileSystem fileSystem)
  16. {
  17. _fileSystem = fileSystem;
  18. }
  19. internal override void InternalStart()
  20. {
  21. _steps = ESteps.LoadCatalogFile;
  22. }
  23. internal override void InternalUpdate()
  24. {
  25. if (_steps == ESteps.None || _steps == ESteps.Done)
  26. return;
  27. if (_steps == ESteps.LoadCatalogFile)
  28. {
  29. if (_loadCatalogFileOp == null)
  30. {
  31. #if UNITY_EDITOR
  32. // 兼容性初始化
  33. // 说明:内置文件系统在编辑器下运行时需要动态生成
  34. string packageRoot = _fileSystem.FileRoot;
  35. bool result = DefaultBuildinFileSystemBuild.CreateBuildinCatalogFile(_fileSystem.PackageName, packageRoot);
  36. if (result == false)
  37. {
  38. _steps = ESteps.Done;
  39. Status = EOperationStatus.Failed;
  40. Error = $"Create package catalog file failed ! See the detail error in console !";
  41. return;
  42. }
  43. #endif
  44. _loadCatalogFileOp = new LoadWebServerCatalogFileOperation(_fileSystem);
  45. _loadCatalogFileOp.StartOperation();
  46. AddChildOperation(_loadCatalogFileOp);
  47. }
  48. _loadCatalogFileOp.UpdateOperation();
  49. if (_loadCatalogFileOp.IsDone == false)
  50. return;
  51. if (_loadCatalogFileOp.Status == EOperationStatus.Succeed)
  52. {
  53. _steps = ESteps.Done;
  54. Status = EOperationStatus.Succeed;
  55. }
  56. else
  57. {
  58. _steps = ESteps.Done;
  59. Status = EOperationStatus.Failed;
  60. Error = _loadCatalogFileOp.Error;
  61. }
  62. }
  63. }
  64. }
  65. }