public void RegistWindow(string name, BaseWindow bw) { UIWindowConfig config = UIWindowConfigProvider.Instance.GetData(name); bw.SetConfigData(config); bw.Init(); // 加入管理队列和栈 mManagedWindows.Add(bw); bw.OnShow(); PushShowingStack(bw); }
/// <summary> /// 设置窗口配置数据 /// </summary> /// <param name="data">Data.</param> public void SetConfigData(UIWindowConfig data) { mConfigData = data; }
/// <summary> /// Initializes a new instance of the <see cref="BaseWindow"/> class. /// </summary> public BaseWindow() { mRegisteredEvents = new List <EventId> (); langList = new List <UILabel>(); mConfigData = null; }
/// <summary> /// 显示窗口 /// tips:检查是否是隐藏 /// </summary> /// <param name="name">Name.</param> public void ShowWindow(string name) { #if !SERVER // 判断是否是隐藏,如果隐藏,则设置显示,如果已经显示,则不操作 BaseWindow bw = GetWindow(name); if (bw != null) { if (!IsWindowVisible(bw)) { bw.gameObject.SetActive(true); bw.OnShow(); PushShowingStack(bw); } // cancel 掉fade流程 //TweenAlpha ta = bw.gameObject.GetComponent<TweenAlpha>(); //if (ta != null) //{ // ta.ResetToBeginning(); // ta.value = 1.0f; // ta.enabled = false; //} TweenAlpha ta = bw.gameObject.GetComponent <TweenAlpha>(); if (ta == null) { ta = bw.gameObject.AddComponent <TweenAlpha>(); } ta.enabled = true; ta.ResetToBeginning(); ta.from = 0; ta.to = 1; ta.duration = 0.5f; ta.SetOnFinished(() => { ta.value = 1.0f; ta.enabled = false; }); ta.Play(true); return; } // 获得外部配置数据 UIWindowConfig config = UIWindowConfigProvider.Instance.GetData(name); if (config == null || string.IsNullOrEmpty(config.mPrefabPath)) { Debug.LogErrorFormat("UISystem_ShowWindow : {0}'s prefab config is null!", name); return; } // 加载prefab,实例化,挂载至root点 //GameObject prefab = Resources.Load(config.mPrefabPath) as GameObject; GameObject prefab = AssetManager.Get().LoadResource(config.mPrefabPath) as GameObject; if (null == prefab) { Debug.LogErrorFormat("UISystem_ShowWindow : {0}'s prefab cannot Load!", name); return; } prefab = UnityTools.AddChild(mUICamera.gameObject, prefab); // 获得BaseWindow对象,调用Init bw = prefab.GetComponent <BaseWindow>(); if (bw == null) { Debug.LogErrorFormat("UISystem_ShowWindow : {0} can't get BaseWindow component from prefab!", name); return; } bw.SetConfigData(config); if (!bw.Init()) { Debug.LogErrorFormat("UISystem_ShowWindow : {0}'s BaseWindow init failed!", name); return; } { TweenAlpha ta = bw.gameObject.GetComponent <TweenAlpha>(); if (ta == null) { ta = bw.gameObject.AddComponent <TweenAlpha>(); } ta.enabled = true; ta.ResetToBeginning(); ta.from = 0; ta.to = 1; ta.duration = 0.5f; ta.SetOnFinished(() => { ta.value = 1.0f; ta.enabled = false; }); ta.Play(true); } // 加入管理队列和栈 mManagedWindows.Add(bw); bw.OnShow(); PushShowingStack(bw); //Resources.UnloadUnusedAssets (); //System.GC.Collect (); #endif }