public virtual void OnShowWnd(UIWndData wndData) { RegisterMessage(); if (!wndData.IsReturn) { mPreUIID = wndData.PreUIID; } readyShow = true; }
/// <summary> /// 切换界面 /// </summary> IEnumerator SwitchWndAsync(UIType targetID, UIType preID, bool bReturn, object exData, UIType[] hideId) { HideWndSync(hideId); if (targetID != UIType.None && !IsUIShowing(targetID)) { UIWndBase targetWnd = GetUIWnd(targetID); if (targetWnd != null) { targetWnd.ReadyShow = false; targetWnd.SetActiveByRoot(false); mCurShowUIIDList.Add(targetID); UIWndData targetData = new UIWndData(preID, bReturn, exData); targetWnd.OnShowWnd(targetData); while (!targetWnd.ReadyShow) { if (targetWnd == null) { yield break; } yield return(null); } targetWnd.SetActiveByRoot(true); targetWnd.OnReadShow(); // 小红点 //LittleRedPointManager.Singleton.Register(targetWnd as ILittleRedPointable); } else { Log.Error($"ui should be prepared before switched: {targetID}"); } } }