Ejemplo n.º 1
0
    public static void openFirst(PopupType type, string msg = "", PopupData.PopupAction yesAction = null, PopupData.PopupAction closeAction = null, params object[] data)
    {
        PopupData pd = getPopupDataFromPool();

        pd.setData(type, msg, yesAction, closeAction, data);

        if (_closePopupData != null && (nowPopupData != null && nowPopupData == _closePopupData))
        {
            nowPopupData = null;
        }

        if (nowPopupData != null)
        {
            _popups.Insert(0, nowPopupData);

            if (nowPopupData.popupType != pd.popupType)
            {
                UISystemPopupBase p = getPopupByType(nowPopupData.popupType);
                if (p != null)
                {
                    p.gameObject.SetActive(false);
                }
            }

            nowPopupData = null;
        }

        open(pd);
    }
Ejemplo n.º 2
0
    public static void open(PopupType type, string msg = "", PopupData.PopupAction yesAction = null, PopupData.PopupAction closeAction = null, params object[] data)
    {
        PopupData pd = getPopupDataFromPool();

        pd.setData(type, msg, yesAction, closeAction, data);

        if (_closePopupData != null && (nowPopupData != null && nowPopupData == _closePopupData))
        {
            nowPopupData = null;
        }

        // 새로 띄울 팝업이 시스템 에러면 얘가 최우선 순위 되겠다.
        // 기존에 떠있는 팝업이 있으면 저장해놓고 얘를 먼저 보여준다.
        if (type == PopupType.SystemError)
        {
            if (nowPopupData != null)
            {
                _popups.Insert(0, nowPopupData);
                nowPopupData = null;
            }

            open(pd);
        }
        // 일반 팝업일때는 현재 보여지는 팝업이 있으면 뒤에 쌓아놓고 아니면 바로 보여준다.
        else
        {
            if (nowPopupData != null)
            {
                _popups.Add(pd);
            }
            else
            {
                open(pd);
            }
        }
    }