public void PrepareLoadTask(ProgressBarCalucationEvent e, ProgressBarNode node, [JoinAll] ICollection <AssetBundleNode> loadingBundles) { HashSet <AssetBundleInfo> trackedBundles = new HashSet <AssetBundleInfo>(); foreach (AssetBundleNode node2 in loadingBundles) { foreach (AssetBundleInfo info in node2.assetBundlesLoadData.BundlesToLoad) { if (!AssetBundlesStorage.IsStored(info)) { trackedBundles.Add(info); } } foreach (AssetBundleInfo info2 in node2.assetBundlesLoadData.LoadingBundles) { if (!AssetBundlesStorage.IsStored(info2)) { trackedBundles.Add(info2); } } } LoadBundlesTaskComponent component = new LoadBundlesTaskComponent(trackedBundles); node.Entity.AddComponent(component); }
public static void Clean() { AssetBundleDiskCache.Clean(); AssetBundlesStorage.Clean(); ServiceRegistry.Reset(); InjectionUtils.ClearInjectionPoints(typeof(InjectAttribute)); BaseElementCanvasScaler.MarkNeedInitialize(); FatalErrorHandler.IsErrorScreenWasShown = false; }
private void PrepareLoadingChannel(AssetBundleInfo info, string baseUrl, IdleLoadingChannelNode channelNode, Entity ownerBundle) { AssetBundlesStorage.MarkLoading(info); Entity entity = channelNode.Entity; entity.RemoveComponent <LoadingChannelIdleComponent>(); entity.AddComponent(new AssetBundleLoadingComponent(info)); entity.AddComponent(new AssetGroupComponent(ownerBundle)); }
private AssetBundleInfo SelectDependBundleToLoad(BundlesRequestNode bundlesRequest) { AssetBundlesLoadDataComponent assetBundlesLoadData = bundlesRequest.assetBundlesLoadData; AssetBundleInfo info = null; List <AssetBundleInfo> list = new List <AssetBundleInfo>(); for (int i = 0; i < assetBundlesLoadData.BundlesToLoad.Count; i++) { AssetBundleInfo info2 = assetBundlesLoadData.BundlesToLoad[i]; if (AssetBundlesStorage.IsStored(info2)) { list.Add(info2); } else if (!AssetBundlesStorage.IsLoading(info2)) { if (i < (assetBundlesLoadData.BundlesToLoad.Count - 1)) { assetBundlesLoadData.BundlesToLoad.Remove(info2); assetBundlesLoadData.LoadingBundles.Add(info2); info = info2; } else if ((assetBundlesLoadData.BundlesToLoad.Count == 1) && (assetBundlesLoadData.LoadingBundles.Count == 0)) { assetBundlesLoadData.BundlesToLoad.Remove(info2); assetBundlesLoadData.LoadingBundles.Add(info2); info = info2; } break; } } foreach (AssetBundleInfo info3 in list) { assetBundlesLoadData.BundlesToLoad.Remove(info3); Dictionary <AssetBundleInfo, AssetBundle> loadedBundles = assetBundlesLoadData.LoadedBundles; if (!loadedBundles.ContainsKey(info3)) { loadedBundles.Add(info3, AssetBundlesStorage.Get(info3)); } } return(info); }
private void UpdateLoadBundlesTask(LoadBundlesTaskComponent loadBundlesTask, ICollection <SingleNode <ResourceLoadStatComponent> > loadStats) { HashSet <AssetBundleInfo> trackedBundles = loadBundlesTask.TrackedBundles; foreach (AssetBundleInfo info in loadBundlesTask.TrackedBundles.ToArray <AssetBundleInfo>()) { if (AssetBundlesStorage.IsStored(info)) { loadBundlesTask.MarkBundleAsLoaded(info); } } this.CancelUnactualBundles(loadBundlesTask, loadStats); foreach (SingleNode <ResourceLoadStatComponent> node in loadStats) { foreach (KeyValuePair <AssetBundleInfo, float> pair in node.component.BundleToProgress) { AssetBundleInfo key = pair.Key; if (trackedBundles.Contains(key)) { loadBundlesTask.SetBundleProgressLoading(key, pair.Value); } } } }