Beispiel #1
0
 public virtual void OnShowWnd(UIWndData wndData)
 {
     RegisterMessage();
     if (!wndData.IsReturn)
     {
         mPreUIID = wndData.PreUIID;
     }
     readyShow = true;
 }
Beispiel #2
0
        /// <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}");
                }
            }
        }