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(); } } }
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); } } } }