void Awake() { _instance = this; _timeLastUpdate = Time.unscaledTime; _loadedScene = new List <string> (); _loadedBundle = new List <string> (); _loadedAsset = new Dictionary <string, object> (); _downloadedBundle = new Dictionary <string, AssetBundle> (); FageConfig.LoadFromText(setting.text); }
private void RemoveListeners() { FageBundleLoader loader = FageBundleLoader.Instance; loader.RemoveEventListener(FageBundleEvent.CHECK_UPDATE, OnCheck); loader.RemoveEventListener(FageBundleEvent.DOWNLOADING, OnDownloading); loader.RemoveEventListener(FageBundleEvent.LOADING, OnLoading); loader.RemoveEventListener(FageBundleEvent.COMPLETE, OnComplete); loader.RemoveEventListener(FageBundleEvent.ERROR_NODATA, OnError); CancelInvoke(); }
void Start() { FageBundleLoader loader = FageBundleLoader.Instance; loader.AddEventListener(FageBundleEvent.CHECK_UPDATE, OnCheck); loader.AddEventListener(FageBundleEvent.DOWNLOADING, OnDownloading); loader.AddEventListener(FageBundleEvent.LOADING, OnLoading); loader.AddEventListener(FageBundleEvent.COMPLETE, OnComplete); loader.AddEventListener(FageBundleEvent.ERROR_NODATA, OnError); InvokeRepeating("UpdateProcessing", 0.5f, 0.5f); // Caching.CleanCache(); // debug loader.ReserveUpdate(); }
private void OnOffline(FageEvent fevent) { FageConnectionManager.Instance.RemoveEventListener(FageEvent.SENSOR_PING, OnPing); _requestId = -1; FageBundleLoader loader = FageBundleLoader.Instance; if (Utility.HasKey(_KEY)) { FageConfig.LoadFromText(Utility.GetPrefString(_KEY)); loader.ReserveState("FageBundleLoaderDownload"); } else { loader.SetUpdateTime(); loader.ReserveState("FageBundleLoaderDownload"); } }
public override void Excute(FageStateMachine stateMachine) { base.Excute(stateMachine); FageBundleLoader loader = stateMachine as FageBundleLoader; if (request != null) { if (request.isDone) { string name = queueAsset.Dequeue() as string; loader.GetLoadedAssets().Add(name, request.asset); request = null; } } else { if ((queueAsset == null) || (queueAsset.Count == 0)) { if (queueBundle.Count > 0) { AssetBundle ab = queueBundle.Dequeue() as AssetBundle; loader.GetLoadedBundles().Add(ab.name); } if ((queueBundle == null) || (queueBundle.Count == 0)) { loader.ReserveState("FageBundleLoaderIdle"); loader.SetUpdateTime(); loader.DispatchEvent(new FageEvent(FageEvent.COMPLETE)); } else { AssetBundle ab = queueBundle.Peek() as AssetBundle; queueAsset = new Queue(ab.GetAllAssetNames()); } } else { AssetBundle ab = queueBundle.Peek() as AssetBundle; string name = queueAsset.Peek() as string; request = ab.LoadAssetAsync(name); } } }
public override void Excute(FageStateMachine stateMachine) { base.Excute(stateMachine); FageBundleLoader loader = stateMachine as FageBundleLoader; if ((loader.expireTime < (Time.unscaledTime - loader.GetUpdateTime())) || loader.flagUpdate) { loader.flagUpdate = false; loader.ReserveState("FageBundleLoaderCheck"); } else if (loader.flagLoad) { loader.ReserveState("FageBundleLoaderLoad"); } else if (loader.flagDownload) { loader.flagDownload = false; loader.ReserveState("FageBundleLoaderDownload"); } }
void Awake() { _instance = this; _timeLastUpdate = Time.unscaledTime; _loadedScene = new List<string> (); _loadedBundle = new List<string> (); _loadedAsset = new Dictionary<string, object> (); _downloadedBundle = new Dictionary<string, AssetBundle> (); FageConfig.LoadFromText(setting.text); }
public override void AfterSwitch(FageStateMachine stateMachine, string beforeId) { base.AfterSwitch(stateMachine, beforeId); List <string> resources = new List <string>(); List <string> loadBundles = new List <string>(); List <string> unloadBundles = new List <string>(); FageBundleLoader loader = stateMachine as FageBundleLoader; Dictionary <string, AssetBundle> downloadedBundles = loader.GetDownloadedBundles(); Dictionary <string, object> loadedAsset = loader.GetLoadedAssets(); List <string> loadedBundles = loader.GetLoadedBundles(); FageUIManager manager = FageUIManager.Instance; Stack stack = manager.GetStack(); Queue queue = manager.GetQueue(); if (stack.Count > 0) { FageUIMem mem = stack.Peek() as FageUIMem; foreach (string s in mem.uiSet.GetBundles()) { if (!resources.Contains(s)) { resources.Add(s); } } } if (queue.Count > 0) { FageUIPopupMem mem = queue.Peek() as FageUIPopupMem; foreach (string s in mem.uiSet.GetBundles()) { if (!resources.Contains(s)) { resources.Add(s); } } } foreach (FageBundle bundle in FageBundleRoot.Instance.bundles) { if ((!bundle.isDynamic) && (!loadBundles.Contains(bundle.id))) { loadBundles.Add(bundle.id); } else if ((resources.Contains(bundle.id)) && (!loadBundles.Contains(bundle.id))) { loadBundles.Add(bundle.id); } } foreach (string id in loadedBundles) { if (loadBundles.Contains(id)) { loadBundles.Remove(id); } else if (!unloadBundles.Contains(id)) { unloadBundles.Add(id); } } queueBundle = new Queue(); foreach (string s in loadBundles) { AssetBundle ab = downloadedBundles[s]; ab.name = s; queueBundle.Enqueue(ab); } foreach (string s in unloadBundles) { AssetBundle ab = downloadedBundles[s]; foreach (string abname in ab.GetAllAssetNames()) { loadedAsset.Remove(abname); } loadedBundles.Remove(s); } if (queueBundle.Count > 0) { AssetBundle ab = queueBundle.Peek() as AssetBundle; queueAsset = new Queue(ab.GetAllAssetNames()); } stateMachine.DispatchEvent(new FageBundleEvent(FageBundleEvent.LOADING)); }