Пример #1
0
        private IWebNode _LoadUI <UIWindowT>(string resourcePath, Action <UIWindowBase> onLoaded)
            where UIWindowT : UIWindowBase, new()
        {
            var argument = new WebArgument
            {
                localPath = resourcePath,
                flags     = WebFlags.UnloadAllLoadedObjects
            };

            IWebNode ret = WebManager.Instance.LoadWebPrefab(argument, prefab => {
                using (prefab)
                {
                    UIWindowBase window = null;
                    Object scenceRoot   = prefab.mainAsset.CloneEx(true);
                    if (null != scenceRoot)
                    {
                        window = new UIWindowT();
                        window.Initialise(scenceRoot as GameObject);
                    }

                    if (null != onLoaded)
                    {
                        onLoaded(window);
                    }
                }
            });

            return(ret);
        }
Пример #2
0
 private void _OnLoadAll(IWebNode web)
 {
     isDone = true;
     if (null != error)
     {
         Console.Error.WriteLine(error);
     }
 }
Пример #3
0
        private void _OnLoadMainWeb(WebItem web)
        {
            _InitCallback_MainWeb(web);

            if (null != web.error)
            {
                error = string.Format("[InnerWebPrefab._OnLoadMainAsset()] {0}, web.error={1}, web={2}"
                                      , Path.GetFileName(web.argument.localPath), web.error, web);
                _OnLoadAll(web);
                return;
            }

            var bundle = web.assetBundle;

            if (null == bundle)
            {
                error = string.Format("[InnerWebPrefab._OnLoadMainAsset()] bundle is null, web={0}", web);
                _OnLoadAll(web);
                return;
            }

            var manif = WebManager.Instance.Manifest;

            string[] dependences = manif.GetAllDependencies(web.argument.localPath);
            if (null == dependences)
            {
                error = string.Format("[InnerWebPrefab._OnLoadMainAsset()] dependences is null, web={0}", web);
                _OnLoadAll(web);
                return;
            }

            var nodes = new IWebNode[dependences.Length];

            for (int i = 0; i < dependences.Length; ++i)
            {
                var arg = new WebArgument {
                    localPath = dependences [i], flags = WebFlags.UnloadAllLoadedObjects
                };
                var sharedPart = WebManager.Instance.LoadWebItem(arg, _OnLoadSimplePart);
                nodes[i] = sharedPart;
            }

            _partGroutp = new WebGroup(nodes, _OnLoadAll);
            web.HoldBabies(ref nodes);
        }