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);
        }
Exemplo n.º 2
0
 public static void Clean()
 {
     AssetBundleDiskCache.Clean();
     AssetBundlesStorage.Clean();
     ServiceRegistry.Reset();
     InjectionUtils.ClearInjectionPoints(typeof(InjectAttribute));
     BaseElementCanvasScaler.MarkNeedInitialize();
     FatalErrorHandler.IsErrorScreenWasShown = false;
 }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
                    }
                }
            }
        }