示例#1
0
    private IEnumerator LoadUI()
    {
        var request = UIPackageManager.Instance().GetPackage(_packageName);

        yield return(request);

        var ui = UIPackage.CreateObject(_packageName, _componentName).asCom;

        if (ui != null)
        {
            GRoot.inst.AddChild(ui);
            _root = ui;

            if (isOpen)
            {
                _root.visible = true;
                OnOpen();
            }
            else
            {
                _root.visible = false;
                OnClose();
            }
        }
    }
示例#2
0
        public static void InitAwake()
        {
            //设置Package的加载器
            UIPackageManager.GetInstance().residentTimeS = residentTimeS;
            UIPackageManager.GetInstance().SetLoader(new PackageCustomLoader((packageName) =>
            {
#if UNITY_EDITOR
                return(Path.Combine(AssetFileBook.FGUI_ROOT_SRC, string.Format("{0}", packageName)));
#else
                return(Path.Combine(AssetFileBook.FGUI_ROOT_SRC, string.Format("{0}", packageName)));

                //           return AssetManager.GetInstance().LoadUISync(packageName);//这里要改为异步
#endif
            }));

            UIPackageManager.GetInstance().OnAdded((packageInfo) =>
            {
                PackageSettingInfo settingInfo = null;
                if (m_packageSettingMap.TryGetValue(packageInfo.package.name, out settingInfo))
                {
                    packageInfo.residentTimeS = settingInfo.residentTimeS;
                }
            });

            ViewManager.GetInstance().OnCreated((viewInfo) =>
            {
                ViewSettingInfo settingInfo = null;
                if (m_viewSettingMap.TryGetValue(viewInfo.view.GetType().ToString(), out settingInfo))
                {
                    viewInfo.isPerpetual = settingInfo.isPerpetual;
                    viewInfo.isResident  = settingInfo.isResident;
                }
            });

            foreach (var settingInfo in packageList)
            {
                if (!string.IsNullOrEmpty(settingInfo.packageName))
                {
                    if (!m_packageSettingMap.ContainsKey(settingInfo.packageName))
                    {
                        m_packageSettingMap.Add(settingInfo.packageName, settingInfo);
                        if (settingInfo.isPlayLoad)
                        {
                            UIPackageManager.GetInstance().AddPackage(settingInfo.packageName);
                        }
                    }
                }
            }

            foreach (var settingInfo in viewList)
            {
                if (!string.IsNullOrEmpty(settingInfo.viewName))
                {
                    if (!m_viewSettingMap.ContainsKey(settingInfo.viewName))
                    {
                        m_viewSettingMap.Add(settingInfo.viewName, settingInfo);
                    }
                }
            }
        }