Esempio n. 1
0
    /// <summary>
    /// 지정된 Panel을 열거나 끕니다.
    /// </summary>
    /// <param name="ePanel">Panel 이름의 Enum</param>
    /// <param name="bShow"></param>
    public CLASS_Panel DoShowHide_Panel(ENUM_Panel_Name ePanel, bool bShow)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        if (pPanel == null)
        {
            Debug.LogWarning(ePanel + "이 없습니다.. 하이어라키를 확인해주세요");
            return(null);
        }

        if (bShow)
        {
            int iSortOrder = 0;
            if (pPanel.p_pPanel.p_bIsFixedSortOrder == false)
            {
                iSortOrder = CaculateSortOrder_Top();
            }

            pPanel.DoShow(iSortOrder);
        }
        else
        {
            pPanel.DoHide();
        }

        return(pPanel.p_pPanel);
    }
Esempio n. 2
0
    /// <summary>
    /// 지정된 Panel을 열거나 끕니다.
    /// </summary>
    /// <param name="ePanel">Panel 이름의 Enum</param>
    /// <param name="bShow"></param>
    public CLASS_Panel DoShowHide_Panel(ENUM_Panel_Name ePanel, bool bShow, System.Action OnFinishAnimation = null)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        if (pPanel == null)
        {
            Debug.LogWarning(ePanel + "이 없습니다.. 하이어라키를 확인해주세요");
            return(null);
        }

        if (bShow)
        {
            int iSortOrder = 0;
            if (pPanel.p_pPanel.p_bIsFixedSortOrder == false)
            {
                iSortOrder = CaculateSortOrder_Top();
            }

            _Stack_OpendPanel.Push(pPanel.p_pPanel);
            pPanel.DoShow(iSortOrder);
        }
        else
        {
            pPanel.DoHide();
        }

        if (OnFinishAnimation != null)
        {
            pPanel.DoSetFinishAnimationEvent(OnFinishAnimation);
        }

        return(pPanel.p_pPanel);
    }
Esempio n. 3
0
    /// <summary>
    /// 지정된 Panel가 열려있으면 끄고, 꺼져있으면 켭니다.
    /// </summary>
    /// <param name="ePanel">Panel 이름의 Enum</param>
    /// <param name="bShow"></param>
    public CLASS_Panel DoShowHide_Panel_Toggle(ENUM_Panel_Name ePanel)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        if (pPanel == null)
        {
            Debug.LogWarning(ePanel + "이 없습니다.. 하이어라키를 확인해주세요");
            return(null);
        }

        bool bShow = !pPanel.p_bIsShowCurrent;

        if (bShow)
        {
            int iSortOrder = 0;
            if (pPanel.p_pPanel.p_bIsFixedSortOrder == false)
            {
                iSortOrder = CaculateSortOrder_Top();
            }

            _Stack_OpendPanel.Push(pPanel.p_pPanel);
            pPanel.DoShow(iSortOrder);
        }
        else
        {
            pPanel.DoHide();
        }

        return(pPanel.p_pPanel);
    }
Esempio n. 4
0
    public bool DoCheckIsActive(ENUM_Panel_Name ePanel)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        if (pPanel == null)
        {
            Debug.LogWarning(ePanel + "이 없습니다.. 하이어라키를 확인해주세요");
            return(false);
        }

        return(pPanel.p_bIsShowCurrent);
    }
Esempio n. 5
0
    public bool DoCheckIsPlayAnimation(ENUM_Panel_Name ePanel)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        if (pPanel == null)
        {
            Debug.LogWarning(ePanel + "이 없습니다.. 하이어라키를 확인해주세요");
            return(false);
        }

        return(pPanel.p_bIsPlayingUIAnimation);
    }
Esempio n. 6
0
    /// <summary>
    /// UI Panel을 얻어옵니다.
    /// </summary>
    /// <returns></returns>
    public CLASS_Panel GetUIPanel(ENUM_Panel_Name ePanelName)
    {
        CUIPanelData pFindPanel = null;
        bool         bResult    = _mapPanelData.TryGetValue(ePanelName, out pFindPanel);

        if (bResult == false)
        {
            Debug.LogWarning(string.Format("{0}을 찾을 수 없습니다.", ePanelName));
        }

        return(pFindPanel.p_pPanel);
    }
Esempio n. 7
0
    public CLASS_Panel DoShowHide_Panel_Force(ENUM_Panel_Name ePanel, bool bShow)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        if (pPanel == null)
        {
            Debug.LogWarning(ePanel + "이 없습니다.. 하이어라키를 확인해주세요");
            return(null);
        }
        pPanel.SetActive(bShow);

        return(pPanel.p_pPanel);
    }
Esempio n. 8
0
    /// <summary>
    /// UI Panel을 얻어옵니다.
    /// </summary>
    /// <typeparam name="CUIPanel">얻고자 하는 Panel 타입</typeparam>
    /// <returns></returns>
    public CUIPanel GetUIPanel <CUIPanel>() where CUIPanel : CLASS_Panel
    {
        CUIPanelData    pFindPanel = null;
        ENUM_Panel_Name strKey     = typeof(CUIPanel).ToString().ConvertEnum <ENUM_Panel_Name>();
        bool            bResult    = _mapPanelData.TryGetValue(strKey, out pFindPanel);

        if (bResult == false)
        {
            Debug.LogWarning(string.Format("{0}을 찾을 수 없습니다.", strKey));
        }

        return(pFindPanel.p_pPanel as CUIPanel);
    }
Esempio n. 9
0
    /// <summary>
    /// 주의) Panel의 Hide Animation 이벤트가 호출되지 않습니다.
    /// </summary>
    /// <param name="bAlwaysShowHide"></param>
    public void DoHideAllPanel(params ENUM_Panel_Name[] arrPanelName_IgnoreHide_IfShow)
    {
        List <CUIPanelData> listPanelDataAll = _mapPanelData.Values.ToList();

        for (int i = 0; i < listPanelDataAll.Count; i++)
        {
            CUIPanelData pUIPanelData = listPanelDataAll[i];
            if (arrPanelName_IgnoreHide_IfShow.Contains(pUIPanelData.p_ePanelName) == false)
            {
                pUIPanelData.SetActive(false);
            }
        }
    }
Esempio n. 10
0
    public void DoShowPanel_FadeIn(ENUM_Panel_Name ePanel, float fFadeTime = 1f)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        int iSortOrder = 0;

        if (pPanel.p_pPanel.p_bIsFixedSortOrder == false)
        {
            iSortOrder = CaculateSortOrder_Top();
        }

        pPanel.EventSetOrder(iSortOrder);
        AutoFade.DoStartFade(fFadeTime, Color.black, pPanel.DoShow);
    }
Esempio n. 11
0
    public void DoChangePanel_FadeInout(ENUM_Panel_Name ePanelHide, ENUM_Panel_Name ePanelShow, float fFadeTime = 1f)
    {
        CUIPanelData pPanelHide = _mapPanelData[ePanelHide];
        CUIPanelData pPanelShow = _mapPanelData[ePanelShow];
        int          iSortOrder = 0;

        if (pPanelShow.p_pPanel.p_bIsFixedSortOrder == false)
        {
            iSortOrder = CaculateSortOrder_Top();
        }

        pPanelShow.EventSetOrder(iSortOrder);
        AutoFade.DoStartFade(fFadeTime, Color.black, pPanelHide.DoHide, pPanelShow.DoShow);
    }
Esempio n. 12
0
    /// <summary>
    /// UI Panel을 얻어옵니다.
    /// </summary>
    /// <typeparam name="CUIPanel">얻고자 하는 Panel 타입</typeparam>
    /// <returns></returns>
    public bool GetUIPanel <CUIPanel>(out CUIPanel pUIPanelOut) where CUIPanel : CLASS_Panel
    {
        CUIPanelData    pFindPanel = null;
        ENUM_Panel_Name strKey     = typeof(CUIPanel).ToString().ConvertEnum <ENUM_Panel_Name>();
        bool            bResult    = _mapPanelData.TryGetValue(strKey, out pFindPanel);

        if (bResult == false)
        {
            pUIPanelOut = null;
            Debug.Log(string.Format("{0}을 찾을 수 없습니다.", strKey), this);
        }
        else
        {
            pUIPanelOut = pFindPanel as CUIPanel;
        }

        return(bResult);
    }
Esempio n. 13
0
    public CLASS_Panel DoShowHide_Panel_IgnoreSortOrder(ENUM_Panel_Name ePanel, bool bShow)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        if (pPanel == null)
        {
            Debug.LogWarning(ePanel + "이 없습니다.. 하이어라키를 확인해주세요");
            return(null);
        }

        if (bShow)
        {
            _Stack_OpendPanel.Push(pPanel.p_pPanel);
        }

        pPanel.SetActive(bShow);

        return(pPanel.p_pPanel);
    }
Esempio n. 14
0
    private int CaculateSortOrder_Top()
    {
        _iSortOrderTop = 0;
        List <CUIPanelData> listUIPanel = _mapPanelData.Values.ToList();

        for (int i = 0; i < listUIPanel.Count; i++)
        {
            CUIPanelData pUIPanelData = listUIPanel[i];
            if (pUIPanelData.p_pPanel.isActiveAndEnabled)
            {
                if (pUIPanelData.p_pPanel.p_bIsFixedSortOrder)
                {
                    ++_iSortOrderTop;
                }
                else
                {
                    pUIPanelData.DoShow(++_iSortOrderTop);
                }
            }
        }

        _iSortOrderTop += 1;
        return(_iSortOrderTop);
    }
Esempio n. 15
0
    public void DoHidePanel_FadeOut(ENUM_Panel_Name ePanel, float fFadeTime = 1f)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        AutoFade.DoStartFade(fFadeTime, Color.black, pPanel.DoHide);
    }
Esempio n. 16
0
    public void DoHidePanel_FadeOut(ENUM_Panel_Name ePanel, System.Action OnFinishFadeOut, float fFadeTime = 1f)
    {
        CUIPanelData pPanel = _mapPanelData[ePanel];

        AutoFade.DoStartFade(fFadeTime, Color.black, pPanel.DoHide_IgnoreAnimation, OnFinishFadeOut);
    }