internal static void UpdateBundles() { if (MAX_BUNDLE_LOAD_SIZE_PERFREME > 0) { if (_bundles2Load.Count > 0 && _bundlesByLoading.Count < MAX_BUNDLE_LOAD_SIZE_PERFREME) { for (int i = 0; i < Math.Min(MAX_BUNDLE_LOAD_SIZE_PERFREME - _bundlesByLoading.Count, _bundles2Load.Count); ++i) { var item = _bundles2Load[i]; if (item.loadState == LoadState.Init) { item.Load(); _bundlesByLoading.Add(item); _bundles2Load.RemoveAt(i); --i; } } } for (int i = 0; i < _bundlesByLoading.Count; ++i) { var item = _bundlesByLoading[i]; if (item.loadState == LoadState.Loaded || item.loadState == LoadState.Unload) { _bundlesByLoading.RemoveAt(i); --i; } } } for (int i = 0; i < _bundleRequests.Count; i++) { BundleRequest item = _bundleRequests[i]; if (item.Update() || !item.IsUnused()) { continue; } _unusedBundles.Add(item); _bundleRequests.RemoveAt(i); --i; } for (var i = 0; i < _unusedBundles.Count; i++) { var item = _unusedBundles[i]; _bundles.Remove(item.url); UnloadDependencies(item); item.Unload(); Log("UnloadBundle: " + item.url); } _unusedBundles.Clear(); }