Esempio n. 1
0
    IEnumerator SwitchWndAsync(EWndID targetID, object uiData, EWndID[] arOriginID)
    {
        if (!IsUICaching(targetID))
        {
            HideWndSync(arOriginID);

            if (targetID != EWndID.None && !IsUIShowing(targetID))
            {
                UIWindow targetWnd = GetUIWnd(targetID);
                if (targetWnd != null)
                {
                    m_ShowUIID.Add(targetID);

                    targetWnd.PrepareShowUI(uiData);
                    targetWnd.gameObject.SetActive(true);
                    targetWnd.ReadyShowUI(uiData);

                    //fufeng todo: check state to show loading or communicating...

                    while (targetWnd.UIState != EUIState.Ready)
                    {
                        yield return(null);
                    }
                }
                else
                {
                    Debug.LogError("UI should be prepared: " + targetID);
                }
            }
        }
    }
Esempio n. 2
0
    IEnumerator PrepareWndAsync(EWndID uiID)
    {
        if (uiID != EWndID.None)
        {
            UIWindow uiWnd = GetUIWnd(uiID);
            if (uiWnd == null)
            {
                if (!IsUICaching(uiID))
                {
                    m_CacheUIID.Add(uiID);

                    AsyncOperation asyncOp = SceneManager.LoadSceneAsync(uiID.ToString());
                    if (asyncOp != null)
                    {
                        while (!asyncOp.isDone)
                        {
                            yield return(null);
                        }
                    }

                    this.m_CacheUIID.Remove(uiID);
                    uiWnd = GetUIWnd(uiID);
                    if (uiWnd != null)
                    {
                        uiWnd.gameObject.SetActive(false);
                    }
                    else
                    {
                        Debug.LogError("UI prepare failed: " + uiID);
                    }
                }
            }
        }
    }
Esempio n. 3
0
    public static IEnumerator ShowUIAsync(EWndID showID, object exData, EWndID[] arHideID)
    {
        IEnumerator itor = uimanager.ShowWndAsync(showID, exData, arHideID);

        while (itor.MoveNext())
        {
            yield return(null);
        }
    }
Esempio n. 4
0
    public UIWindow GetUIWnd(EWndID uiID)
    {
        if (uiID != EWndID.None && m_AllUIWnd.ContainsKey(uiID))
        {
            return(m_AllUIWnd[uiID]);
        }

        return(null);
    }
Esempio n. 5
0
    public bool IsUIShowing(EWndID uiID)
    {
        if (uiID != EWndID.None && m_ShowUIID.Contains(uiID))
        {
            return(true);
        }

        return(false);
    }
Esempio n. 6
0
    public bool IsUICaching(EWndID uiID)
    {
        if (uiID != EWndID.None && m_CacheUIID.Contains(uiID))
        {
            return(true);
        }

        return(false);
    }
Esempio n. 7
0
    public static IEnumerator SwitchUIAsync(EWndID showID, object exData, EWndID hideID)
    {
        IEnumerator itor = uimanager.SwitchWndAsync(showID, exData, new EWndID[] { hideID });

        while (itor.MoveNext())
        {
            yield return(null);
        }
    }
Esempio n. 8
0
    public static IEnumerator PrepareUIAsync(EWndID showID)
    {
        IEnumerator itor = uimanager.PrepareWndAsync(showID);

        while (itor.MoveNext())
        {
            yield return(null);
        }
    }
Esempio n. 9
0
    IEnumerator ShowWndAsync(EWndID showID, object exData, EWndID[] arHideID)
    {
        IEnumerator itor = PrepareWndAsync(showID);

        while (itor.MoveNext())
        {
            yield return(null);
        }

        itor = SwitchWndAsync(showID, exData, arHideID);
        while (itor.MoveNext())
        {
            yield return(null);
        }
    }
Esempio n. 10
0
    void HideWndSync(EWndID[] arHideID)
    {
        if (arHideID != null)
        {
            for (int i = 0; i < arHideID.Length; ++i)
            {
                EWndID hideID = arHideID[i];

                if (hideID != EWndID.None && IsUIShowing(hideID))
                {
                    m_ShowUIID.Remove(hideID);

                    UIWindow hideWnd = GetUIWnd(hideID);
                    if (hideWnd != null)
                    {
                        hideWnd.gameObject.SetActive(false);
                        hideWnd.AlreadyHideUI();

                        //fufeng todo: dynamic destroy ui wnd
                    }
                }
            }
        }
    }
Esempio n. 11
0
 public static void ShowUISync(EWndID showID, object exData, EWndID[] arHideID)
 {
     uimanager.StartCoroutine(uimanager.ShowWndAsync(showID, exData, arHideID));
 }
Esempio n. 12
0
 public static void ShowUISync(EWndID showID, object exData)
 {
     uimanager.StartCoroutine(uimanager.ShowWndAsync(showID, exData, null));
 }
Esempio n. 13
0
 public static void HideUI(EWndID hideID)
 {
     uimanager.HideWndSync(new EWndID[] { hideID });
 }