Beispiel #1
0
    private void OnProgress(FageEvent fevent)
    {
        FageWebEvent wevent = fevent as FageWebEvent;

        if ((wevent == null) || (!_hash.ContainsKey(wevent.requestId)))
        {
            return;
        }

        float seg = 1f / _total;
        float p   = (_total - _hash.Count) * seg + wevent.progress * seg;

        FageBundleLoader.Instance.DispatchEvent(new FageBundleEvent(FageBundleEvent.DOWNLOADING, p));
    }
Beispiel #2
0
    private void OnResponse(FageEvent fevent)
    {
        FageWebEvent wevent = fevent as FageWebEvent;

        if ((wevent == null) || (!_hash.ContainsKey(wevent.requestId)))
        {
            return;
        }

        if (string.IsNullOrEmpty(wevent.www.error))
        {
            FageBundle bundle = _hash[wevent.requestId] as FageBundle;
            Dictionary <string, AssetBundle> bundles = FageBundleLoader.Instance.GetDownloadedBundles();
            if (bundles.ContainsKey(bundle.id))
            {
                bundles[bundle.id] = wevent.www.assetBundle;
            }
            else
            {
                bundles.Add(bundle.id, wevent.www.assetBundle);
            }
            List <string> scenes = FageBundleLoader.Instance.GetLoadedScene();
            string[]      paths  = wevent.www.assetBundle.GetAllScenePaths();
            for (int i = 0; i < paths.Length; i++)
            {
                if (!scenes.Contains(paths[i]))
                {
                    scenes.Add(paths[i]);
                }
            }

            wevent.www.Dispose();
        }
        else
        {
            FageBundleLoader.Instance.DispatchEvent(new FageBundleEvent(FageBundleEvent.ERROR_NODATA));
            FageBundleLoader.Instance.ReserveState("FageBundleLoaderIdle");
            _hash.Clear();
            return;
        }

        _hash.Remove(wevent.requestId);
        if (_hash.Count == 0)
        {
            FageBundleLoader.Instance.DispatchEvent(new FageBundleEvent(FageBundleEvent.DOWNLOADING, 1f));
            FageBundleLoader.Instance.ReserveState("FageBundleLoaderLoad");
        }
    }
    private void OnResponse(FageEvent fevent)
    {
        FageWebEvent wevent = fevent as FageWebEvent;

        if ((wevent == null) || (wevent.requestId != _requestId))
        {
            return;
        }

        if (string.IsNullOrEmpty(wevent.www.error))
        {
            string str = wevent.www.text;
            FageConfig.LoadFromText(str);
            Utility.SetPrefString(_KEY, str);
            FageBundleLoader.Instance.ReserveState("FageBundleLoaderDownload");
        }
        else
        {
            OnOffline(null);
        }
    }