/// <summary> /// 注销并销毁UI /// </summary> /// <param name="uiId"></param> public void UnRegisterUI(object uiId) { BaseUI ui = CloseUI(uiId); if (ui != null) { ui.OnUnRegister(); if (uiStack.Contains(uiId)) { uiStack.Remove(uiId); } _dictionary.Remove(uiId); GameObject.Destroy(ui.gameObject, 0.1f); } }
/// <summary> /// 注册UI /// </summary> /// <param name="uiId"></param> /// <param name="ui"></param> public void RegisterUI(object uiId, BaseUI ui, BaseUI.UiType type)//,BaseUI.Type type) { if (_dictionary.ContainsKey(uiId)) { Debug.Log(uiId + " 已有相同ID注册"); return; } else { _dictionary.Add(uiId, ui); } ui.uiID = uiId; ui.uiType = type; ui.OnRegister(); ui.gameObject.SetActive(false); }
/// <summary> /// 回退一个Panel_Stack的UI /// </summary> /// <param name="useAnim"></param> /// <param name="coolTime">回退的冷却时间</param> public void BackspaceUI(bool useAnim = true, float coolTime = 0) { if (backspaceUICoolTime.Tick()) { backspaceUICoolTime.Counter(coolTime); object uiId = PopStack(); BaseUI cui = GetUI(uiId); CloseAUI(cui, useAnim); uiId = PopStack(); BaseUI ui = GetUI(uiId); if (ui != null) { OpenAUI(ui, useAnim); PushStack(uiId); } } }
/// <summary> /// 打开一个UI /// </summary> /// <param name="uiId"></param> /// <param name="useAnim"></param> /// <param name="closeCurrentStackUI">是否关闭上一个入栈的UI</param> /// <returns></returns> public BaseUI OpenUI(object uiId, bool useAnim = true, bool closeCurrentStackUI = true) { BaseUI ui = GetUI(uiId); if (ui == null) { Debug.Log(uiId + "UI未注册"); } else { if (ui.uiType == BaseUI.UiType.PANEL_STACK) { if (uiStack.Count > 0) { object preUiId = PopStack(); BaseUI preUi = GetUI(preUiId); if (preUi != null) { PushStack(preUiId); //关闭上一个入栈的UI if (closeCurrentStackUI) { CloseAUI(preUi, useAnim); } else { preUi.OutActive(); } } } //入栈一个Panel_Stack类型的UI PushStack(uiId); } OpenAUI(ui, useAnim); } return(ui); }
private void CloseAUI(BaseUI ui, bool useAnim) { ui.OutActive(); ui.Close(useAnim); }
private void OpenAUI(BaseUI ui, bool useAnim) { ui.Open(useAnim); ui.InActive(); }
///// <summary> ///// 打开一个UI ///// </summary> ///// <param name="uiId"></param> //public BaseUI OpenUI(System.Enum uiId,bool useAnim = true) //{ // return OpenUI(uiId.ToString(),useAnim); //} /// <summary> /// 打开一个UI /// </summary> /// <param name="ui"></param> /// <param name="useAnim"></param> /// <returns></returns> public BaseUI OpenUI(BaseUI ui, bool useAnim = true) { return(OpenUI(ui.uiID, useAnim)); }
///// <summary> ///// 关闭一个UI ///// </summary> ///// <param name="uiId"></param> //public BaseUI CloseUI(System.Enum uiId, bool useAnim = true) //{ // return CloseUI(uiId.ToString(), useAnim); //} /// <summary> /// 关闭一个UI /// </summary> /// <param name="uiName"></param> public BaseUI CloseUI(BaseUI ui, bool useAnim = true) { return(CloseUI(ui.uiID, useAnim)); }