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(); }
/// <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); }
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); }); }
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; } } }
/* * /// <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; } } }
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(); } } }); }