Type GetUIpopupType(UIPOPUP _popup) { Type _type = null; switch (_popup) { case UIPOPUP.POPUPNOTICE: _type = typeof(UI_Popup_Notice); break; case UIPOPUP.POPUPSELECTIVE: _type = typeof(UI_Popup_Selective); break; case UIPOPUP.POPUPUSERINFO: _type = typeof(UI_Popup_UserInfo); break; case UIPOPUP.POPUPSHOWINGBOX: _type = typeof(UI_Popup_Showing); break; case UIPOPUP.POPUPSHOWINGLEVEL: _type = typeof(UI_Popup_Showing); break; case UIPOPUP.POPUPTOAST: _type = typeof(UI_Popup_Toast); break; case UIPOPUP.POPUPMAKENAME: _type = typeof(UI_Popup_MakeName); break; case UIPOPUP.POPUPBUYITEM: _type = typeof(UI_Popup_BuyItem); break; case UIPOPUP.POPUPNETWORKERROR: _type = typeof(UI_Popup_NetworkError); break; case UIPOPUP.POPUPCLANINFO: _type = typeof(UI_Popup_ClanInfo); break; case UIPOPUP.POPUPFIND: _type = typeof(UI_Popup_Find); break; case UIPOPUP.POPUPCHATMESSAGE: _type = typeof(UI_Popup_ChatMessage); break; case UIPOPUP.POPUPPLATFORM: _type = typeof(UI_Popup_Platform); break; case UIPOPUP.POPUPREINFORCE: _type = typeof(UI_Popup_Reinforce); break; case UIPOPUP.POPUPRFPROCESS: _type = typeof(UI_Popup_RfProcess); break; case UIPOPUP.POPUPSTARTGAME: _type = typeof(UI_Popup_StartGame); break; case UIPOPUP.POPUPINVITE: _type = typeof(UI_Popup_Invite); break; case UIPOPUP.POPUPATTENDANCE: _type = typeof(UI_Popup_Attendace); break; case UIPOPUP.POPUPSERVERSELECT: _type = typeof(UI_Popup_ServerSelect); break; case UIPOPUP.POPUPWRITEBOARD: _type = typeof(UI_Popup_WriteBoard); break; case UIPOPUP.POPUPGAINITEM: _type = typeof(UI_Popup_GainItem); break; case UIPOPUP.POPUPROULETTE: _type = typeof(UI_Popup_Roulette); break; case UIPOPUP.POPUPSHOPPURCHASE: _type = typeof(UI_Popup_ShopPurchase); break; } return(_type); }
bool ExistPopup(UIPOPUP _popup) { bool isExist = false; Type _poptype = GetUIpopupType(_popup); for (int i = 0; i < UIPopupList.Count; i++) { if (UIPopupList[i].GetType() == _poptype) { isExist = true; break; } } return(isExist); }
bool ChkGetPopup <T>(out T p, UIPOPUP _popup) { bool isExist = false; p = default(T); for (int i = 0; i < UIPopupList.Count; i++) { if (UIPopupList[i].GetType() == typeof(UI_Popup_Toast)) { ClearUI(UIPopupList[i]); UI_PopupBase _uiPopupBase = null; Scene _scene = SceneManager.GetActiveScene(); if (_scene.name == DefineKey.Main) { _uiPopupBase = InstantiateUI(_popup, parentToastPopup_Tr); } else { _uiPopupBase = InstantiateUI(_popup, CanvasTr); } p = _uiPopupBase.GetComponent <T>(); isExist = true; break; } //else if (UIPopupList[i].GetType() == typeof(UI_Popup_ChatMessage)) //{ // p = UIPopupList[i].GetComponent<T>(); // //UI_Popup_Toast t = p as UI_Popup_Toast; // //if (t.toastType == ToastPopUpType.Notice) // isExist = true; // //else // // isExist = false; // break; //} } return(isExist); }
} // end of function public T CreatAndGetPopup <T>(UIPOPUP _popup) { T popUp = default(T); if (_popup == UIPOPUP.POPUPTOAST || _popup == UIPOPUP.POPUPCHATMESSAGE) { if (!ChkGetPopup(out popUp, _popup)) { UI_PopupBase _uiPopupBase = null; Scene _scene = SceneManager.GetActiveScene(); if (_scene.name == DefineKey.Main) // Tr을 분리하였기때문에 메인씬쪽은 따로 팝업을 생성처리한다 { _uiPopupBase = InstantiateUI(_popup, parentToastPopup_Tr); } else { _uiPopupBase = InstantiateUI(_popup, CanvasTr); } popUp = _uiPopupBase.GetComponent <T>(); } } else { UI_PopupBase _uiPopupBase = null; Scene _scene = SceneManager.GetActiveScene(); if (_scene.name == DefineKey.Main) // Tr을 분리하였기때문에 메인씬쪽은 따로 팝업을 생성처리한다 { _uiPopupBase = InstantiateUI(_popup, parentPopup_Tr); } else { _uiPopupBase = InstantiateUI(_popup, CanvasTr); } popUp = _uiPopupBase.GetComponent <T>(); } return(popUp); }
// :: popup 삭제 public void ClearUI(UIPOPUP _popup) { if (UIPopupList.Count == 0) { return; } Type __type = GetUIpopupType(_popup); UI_PopupBase _Pop = UIPopupList.Find(n => n.GetType() == __type); if (_Pop == null) { return; } _Pop.Set_Close(); Destroy(_Pop.gameObject); UIPopupList.Remove(_Pop); Open_NextPopup(); //다음 팝업창 }
/// <summary> /// popup inst /// </summary> public UI_PopupBase InstantiateUI(UIPOPUP _popup, Transform _parentTr) { GameObject NewUI; GameObject CloneUI; NewUI = Resources.Load(string.Format("Prefebs/UI_{0}", _popup.ToString())) as GameObject; CloneUI = Instantiate(NewUI); UserEditor.Getsingleton.EditLog(string.Format("Creat Prefebs/UI_{0}", _popup.ToString())); #if UNITY_EDITOR CloneUI.name = NewUI.name; #endif CloneUI.transform.SetParent(_parentTr); RectTransform _cloneUIRectTr = CloneUI.GetComponent <RectTransform>(); RectTransform _newUIRectTr = NewUI.GetComponent <RectTransform>(); _cloneUIRectTr.sizeDelta = _newUIRectTr.sizeDelta; _cloneUIRectTr.anchoredPosition = _newUIRectTr.anchoredPosition; _cloneUIRectTr.localScale = _newUIRectTr.localScale; UI_PopupBase _uiPopupBase = CloneUI.GetComponent <UI_PopupBase>(); UIPopupList.Add(_uiPopupBase); //if (UIPopupList.Count == 1) Open_NextPopup(); //else // _uiPopupBase.gameObject.SetActive(false); //팝업올라 왓으니 캐릭회전 잠그자 //User.isSelectedCharacter = true; return(_uiPopupBase); } // end of function