public void ClosePanel(UIBasePanel i_Panel)
 {
     if (i_Panel != null)
     {
         i_Panel.Close();
     }
 }
    public void EndTutorial()
    {
        if (TutoSupport.TutoType != SceneManager.instance.CurTutorial)
        {
            return;
        }

        UIBasePanel basePanel = UIMgr.GetUIBasePanel("UIPopup/TutorialPopup");

        if (basePanel == null)
        {
            return;
        }

        if ((basePanel as TutorialPopup).CurrentSortId - 1 != TutoSupport.SortId)
        {
            return;
        }

        //SceneManager.instance.CurTutorial = TutoSupport.TutoType;//다음으로 넘김.

        TutoSupport.enabled  = false;
        TutoSupport.IsEnable = false;
        TutoSupport.TutoType = TutorialType.NONE;

        basePanel.Close();
    }
Exemplo n.º 3
0
    /// <summary>
    /// 해당 이름의 UIPanel이 존재하면 파괴되도록한다.
    /// </summary>
    /// <param name="uiPath">생성시 입력한 uiPath명</param>
    static public bool Close(string uiPath)
    {
        UIBasePanel panel = UIMgr.instance.FindInShowing(uiPath);

        if (null == panel)
        {
            return(false);
        }

        panel.Close();
        return(true);
    }
Exemplo n.º 4
0
    void SetItemSlot(uint itemid, Transform itemTf)
    {
        Item.ItemInfo itemInfo = _LowDataMgr.instance.GetUseItem(itemid);

        UISprite iconSp = itemTf.FindChild("icon").GetComponent <UISprite>();

        if (itemInfo.Type == (byte)AssetType.CostumeShard || itemInfo.Type == (byte)AssetType.PartnerShard)
        {
            iconSp.atlas = AtlasMgr.instance.GetLoadAtlas(LoadAtlasType.Shard);
        }

        iconSp.spriteName = _LowDataMgr.instance.GetLowDataIcon(itemInfo.Icon);
        itemTf.FindChild("grade").GetComponent <UISprite>().spriteName = string.Format("Icon_0{0}", itemInfo.Grade);
        NetData._ItemData item = NetData.instance.GetUserInfo().GetItemForItemID(itemid, (byte)eItemType.USE);
        if (item != null)
        {
            itemTf.FindChild("new").gameObject.SetActive(item.IsNewItem);
            itemTf.FindChild("disable").gameObject.SetActive(false);
            itemTf.FindChild("stack").GetComponent <UILabel>().text = item.Count.ToString();

            item.IsNewItem = false;//바로 꺼준다.Hide에서 처리해도 되지만 여기서 처리해보도록한다
        }
        else
        {
            itemTf.FindChild("new").gameObject.SetActive(false);
            itemTf.FindChild("disable").gameObject.SetActive(true);
            itemTf.FindChild("stack").GetComponent <UILabel>().text = "0";
        }

        EventDelegate.Set(itemTf.GetComponent <UIEventTrigger>().onClick, () => {
            if (SceneManager.instance.CurTutorial == TutorialType.CATEGORY)
            {
                if (itemTf.GetComponent <TutorialSupport>() == null)//스킵
                {
                    UIBasePanel basePanel = UIMgr.GetUIBasePanel("UIPopup/TutorialPopup");
                    if (basePanel != null)
                    {
                        SceneManager.instance.CurTutorial = SceneManager.instance.CurTutorial;//다음으로 넘김.
                        basePanel.Close();
                    }
                }
            }

            UIMgr.OpenDetailPopup(this, itemInfo.Id, 7);
        });
    }
Exemplo n.º 5
0
    public void Prev()
    {
        //if (ListUIPanel.Count < 2)
        //{
        //    OnPopupToastPanel("숨겨진 패널이 없습니다");
        //    return;
        //}

        UIBasePanel hidePanel = null;
        UIBasePanel showPanel = null;

        int hideIdx = ListUIPanel.FindIndex(panel => panel._ePanelType != ePanelState.Ignore && _CurUIBasePanel.name == panel.name);

        if (hideIdx >= 0 && ListUIPanel.Count > hideIdx)
        {
            hidePanel = ListUIPanel[hideIdx];
        }

        // 뒤로 가기 막기
        if (hidePanel is InGameHUDPanel)
        {
            return;
        }

        if (hidePanel is MainPanel || hidePanel is TitlePanel)
        {
            OpenPopup(DataMgr.Instance.GetLocal(5), DataMgr.Instance.GetLocal(6), delegate()
            {
                Application.Quit();
            }, delegate() { }, DataMgr.Instance.GetLocal(3), DataMgr.Instance.GetLocal(4));
            return;
        }

        int showIdx = ListUIPanel.FindIndex(hideIdx + 1, panel => panel._ePanelType != ePanelState.Ignore);

        if (showIdx >= 0 && ListUIPanel.Count > showIdx)
        {
            showPanel = ListUIPanel[showIdx];
        }

        if (hidePanel != null)
        {
            switch (hidePanel.Prev())
            {
            case PrevType.Not:
                break;

            case PrevType.OnlyHide:
            {
                hidePanel.Hide();
            }
            break;

            case PrevType.Hide:
            {
                if (showPanel != null)
                {
                    _CurUIBasePanel = showPanel;
                    showPanel.LateInit();
                }
                hidePanel.Hide();
            }
            break;

            case PrevType.OnlyClose:
            {
                hidePanel.Close();
            }
            break;

            case PrevType.Close:
            {
                if (showPanel != null)
                {
                    _CurUIBasePanel = showPanel;
                    showPanel.LateInit();
                }
                hidePanel.Close();
            }
            break;
            }
        }
    }
Exemplo n.º 6
0
    /*
     * /// <summary>
     * /// 모든 UI OFF
     * /// </summary>
     * static public void UIShutDown()
     * {
     *  List<UIBasePanel> Panels = UIMgr.instance.FindAllInShowing<UIBasePanel>();
     *  foreach (UIBasePanel panel in Panels)
     *  {
     *      if (panel.ShowOption == ShowOption.Ignore)
     *          continue;
     *
     *      if (panel.Popup)
     *          continue;
     *
     *      panel.Hide();
     *  }
     * }
     */
    /// <summary>
    /// 안드로이드, PC에서 뒤로가기 처리함수.
    /// 아직 좀더 만져줘야함. 주석처리 되어 있는건 기존의 것.(아직 삭제하면 않이됩니다.)
    /// 사용 방식은 PrevReturnType에 맞게 Close, Hide를 호출함. Not일 경우 ShowingPanels등록되어 있는거 삭제만함.
    /// 설정은 코드에서 Prev재정의 하거나, Prefab에서 변경해주면됨.
    /// </summary>
    public void Prev(int depth = 1)
    {
        if (SceneManager.instance.IsShowStaticUI)
        {
            return;
        }

        for (int i = 0; i < depth; ++i)//depth는 무조건 1일 것이다.
        {
            int hideIdx = ShowingPanels.FindIndex(i, (basePanel) => basePanel.ShowOption != ShowOption.Ignore);
            if (hideIdx < 0)//-1 값이 나올 경우가 존제함. 예외처리.
            {
                continue;
            }

            UIBasePanel curPanel = ShowingPanels[hideIdx];
            if (!curPanel.gameObject.activeSelf)
            {
                if (depth == 1)
                {
                    depth += 1;
                }

                continue;
            }

            /*
             * if (curPanel.name.Contains("TownPanel") || curPanel.name.Contains("LoginPanel") )//(EndPanel != null && EndPanel == ShowingPanels[hideIdx])
             * {
             *  //시스템 종료 팝업
             *  AddPopup(2, Application.Quit, null, null);
             *      return;
             * }
             */
            //< 뒤로가기가 가능할시에만 처리
            //HideEvent, CloseEvent 함수에서 삭제 함수 호출함. 독특한 예외처리 필요치 않는 이상 신경안써도 됨.
            UIBasePanel hidePanel = ShowingPanels[hideIdx];
            switch (hidePanel.Prev())
            {
            //< 숨기기만 해줌
            case PrevReturnType.None:
            case PrevReturnType.Hide:
                hidePanel.Hide();
                break;

            case PrevReturnType.Close:
                hidePanel.Close();
                break;

            case PrevReturnType.Quit:
                if (hidePanel.Quit())
                {
                        #if UNITY_EDITOR
                    {
                        AddPopup(75, 74, 117, 76, 0, () => {
                            UnityEditor.EditorApplication.isPlaying = false;
                        });
                    }
                        #else
                    AddPopup(75, 74, 117, 76, 0, () => {
                        Application.Quit();
                    });
                        #endif
                }

                break;
            }
        }
    }
Exemplo n.º 7
0
    public override void Init()
    {
        base.Init();

        for (int i = 0; i < NoticeGo.Length; i++)
        {
            NoticeGo[i].SetActive(false);
        }

        NoticeDelay = new float[NoticeLbl.Length];
        for (int i = 0; i < NoticeLbl.Length; i++)
        {
            NoticeDelay[i]     = 1;
            NoticeLbl[i].color = new Color32(255, 255, 255, 0);
            NoticeLbl[i].text  = "";
        }

        UIHelper.CreateEffectInGame(NoticeGo[(int)NoticeType.Contents].transform.FindChild("Effect"), "Fx_UI_new_contents_01");
        EventDelegate.Set(NoticeGo[(int)NoticeType.Achiev].GetComponent <UIEventTrigger>().onClick,//업적페널 오픈.
                          delegate() {
            if (AchieveType <= 0 || !TownState.TownActive)
            {
                AchieveType    = 0;
                AchieveSubType = 0;
                AchieveLv      = 0;
                NoticeGo[(int)NoticeType.Achiev].SetActive(false);
                return;
            }

            NoticeGo[(int)NoticeType.Achiev].SetActive(false);
            //AchieveType = 0;
            AchieveSubType = 0;
            AchieveLv      = 0;
            if (uiMgr.IsActiveTutorial)    //튜토리얼중 무시한다.
            {
                return;
            }

            UIBasePanel check = uiMgr.GetCurPanel();
            if (check == null)
            {
                check = UIMgr.instance.GetSecondUI();
            }

            if (check == null)
            {
                return;
            }

            if (check.name.Contains("AchievePanel"))    //업적 페널에 있는데 업적이 갱신되서 클릭함 무시한다.
            {
                return;
            }

            if (check.name.Contains("TownPanel"))
            {
                check.Hide();
            }
            else
            {
                check.ObjectHide();
            }

            if (AchieveTabType == 0)
            {
                UIMgr.OpenAchievePanel(check, 0);
            }
            else
            {
                UIMgr.OpenAchievePanel(check, 1, (int)AchieveType);
            }

            if (_TownState != null && _TownState.MyHero != null)
            {
                _TownState.MyHero.ResetMoveTarget();
            }
        });

        for (int i = 0; i < GetMailSlotTf.Length; i++)
        {
            UIHelper.CreateInvenSlot(GetMailSlotTf[i].FindChild("root"));
        }

        EventDelegate.Set(NoticeGo[(int)NoticeType.Contents].transform.FindChild("Icon").GetComponent <UIEventTrigger>().onClick,
                          () => {
            NoticeGo[(int)NoticeType.Contents].SetActive(false);

            if (TownState.TownActive)
            {
                UIBasePanel basePanel = uiMgr.GetCurPanel();    //UIMgr.UIType.Default
                if (basePanel == null)
                {
                    basePanel = uiMgr.GetFirstUI();
                    if (basePanel == null)
                    {
                        basePanel = UIMgr.GetTownBasePanel();
                    }
                }

                if (basePanel != null)
                {
                    if (!basePanel.name.Contains("TownPanel"))
                    {
                        if (basePanel.ReturnType == PrevReturnType.Close)
                        {
                            basePanel.Close();
                        }
                        else
                        {
                            basePanel.Hide();
                        }
                    }
                    else if (!basePanel.IsHidePanel)
                    {
                        basePanel.OnSubTutorial();
                    }
                }
            }
            else
            {
                UIBasePanel resultPanel = UIMgr.GetUIBasePanel("UIPanel/ResultRewardStarPanel");
                if (resultPanel != null)
                {
                    (resultPanel as ResultRewardStarPanel).GotoTown();
                }
            }
        });
    }