| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- using System.Collections.Generic;
 
- using UnityEngine;
 
- namespace VEngine
 
- {
 
-     public class Dependencies : Loadable
 
-     {
 
-         protected readonly List<Bundle> bundles = new List<Bundle>();
 
-         protected Bundle mainBundle;
 
-         public AssetBundle assetBundle => mainBundle?.assetBundle;
 
-         protected override void OnLoad()
 
-         {
 
-             if (!Versions.GetDependencies(pathOrURL, out var info, out var infos))
 
-             {
 
-                 Finish("Dependencies not found");
 
-                 return;
 
-             }
 
-             if (info == null)
 
-             {
 
-                 Finish("info == null");
 
-                 return;
 
-             }
 
-             mainBundle = Bundle.LoadInternal(info, mustCompleteOnNextFrame);
 
-             bundles.Add(mainBundle);
 
-             if (infos != null && infos.Length > 0)
 
-                 foreach (var item in infos)
 
-                     bundles.Add(Bundle.LoadInternal(item, mustCompleteOnNextFrame));
 
-         }
 
-         public override void LoadImmediate()
 
-         {
 
-             if (isDone) return;
 
-             foreach (var request in bundles) request.LoadImmediate();
 
-         }
 
-         protected override void OnUnload()
 
-         {
 
-             if (bundles.Count > 0)
 
-             {
 
-                 foreach (var item in bundles)
 
-                     if (string.IsNullOrEmpty(item.error))
 
-                         item.Release();
 
-                 bundles.Clear();
 
-             }
 
-             mainBundle = null;
 
-         }
 
-         protected override void OnUpdate()
 
-         {
 
-             if (status == LoadableStatus.Loading)
 
-             {
 
-                 var totalProgress = 0f;
 
-                 var allDone = true;
 
-                 foreach (var child in bundles)
 
-                 {
 
-                     totalProgress += child.progress;
 
-                     if (!string.IsNullOrEmpty(child.error))
 
-                     {
 
-                         status = LoadableStatus.FailedToLoad;
 
-                         error = child.error;
 
-                         progress = 1;
 
-                         return;
 
-                     }
 
-                     if (child.isDone) continue;
 
-                     allDone = false;
 
-                     break;
 
-                 }
 
-                 progress = totalProgress / bundles.Count * 0.5f;
 
-                 if (allDone)
 
-                 {
 
-                     if (assetBundle == null)
 
-                     {
 
-                         Finish("assetBundle == null");
 
-                         return;
 
-                     }
 
-                     Finish();
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |