InitializeVersions.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using UnityEngine;
  2. namespace VEngine
  3. {
  4. public sealed class InitializeVersions : Operation
  5. {
  6. public ManifestAsset asset;
  7. public string file { get; private set; }
  8. public override void Start()
  9. {
  10. base.Start();
  11. var settings = Resources.Load<PlayerSettings>(nameof(PlayerSettings));
  12. if (settings == null) settings = ScriptableObject.CreateInstance<PlayerSettings>();
  13. file = nameof(Manifest);
  14. Versions.builtinAssets.AddRange(settings.assets);
  15. Versions.OfflineMode = settings.offlineMode;
  16. asset = ManifestAsset.LoadAsync(file, true);
  17. }
  18. protected override void Update()
  19. {
  20. if (status == OperationStatus.Processing)
  21. {
  22. progress = asset.progress;
  23. if (!asset.isDone) return;
  24. if (string.IsNullOrEmpty(asset.error))
  25. {
  26. asset.Override();
  27. asset.Release();
  28. }
  29. Finish(asset.error);
  30. }
  31. }
  32. }
  33. }