private void Start() { GameObject LobbyUI = GameObject.Find("LobbyUI"); m_eCurPanel = UI_PANEL_INDEX.PANEL_LOBBY; for (int i = (int)UI_PANEL_INDEX.PANEL_START; i < (int)UI_PANEL_INDEX.PANEL_END; i++) { UIPanel Node = LobbyUI.transform.GetChild(i + 1).GetComponent <UIPanel>(); Node.gameObject.SetActive(false); m_ListPanel.Add(Node); } var CharList = UserInfo.instance.GetMyCharList(); int iCount = CharList.Count; string[] strIndex = new string[CharList.Count]; int[] iarr = new int[CharList.Count]; //내가 가진 캐릭터 리스트 기반 for (int i = 0; i < iCount; i++) { try { string route = Util.ConvertToString(CharList[i].GetCharData(CHAR_DATA.CHAR_INDEX)); string name = Util.ConvertToString(CharList[i].GetCharData(CHAR_DATA.CHAR_NAME)); strIndex[i] = "Player/" + route + "/Prefabs/" + name; iarr[i] = Util.ConvertToInt(CharList[i].GetCharData(CHAR_DATA.CHAR_INDEX)); } catch (System.NullReferenceException ex) { Debug.Log(ex); } } CharPoolManager.instance.Set(POOL_INDEX.POOL_USER_CHAR.ToString(), strIndex, iarr, iCount); //내가 가진 캐릭터 모델링들을 미리 셋팅 PanelOnOff(UI_PANEL_INDEX.PANEL_LOBBY, false); m_UserLevel.text += UserInfo.instance.GetUserData(USER_INFO.USER_INFO_LEVEL); //유저 레벨 m_UserNickName.text = UserInfo.instance.GetUserData(USER_INFO.USER_INFO_NICKNAME); //유저 닉네임 float cur = Util.ConvertToInt(UserInfo.instance.GetUserData(USER_INFO.USER_INFO_CUR_EXP)); float max = Util.ConvertToInt(UserInfo.instance.GetUserData(USER_INFO.USER_INFO_MAX_EXP)); m_UserEXP.fillAmount = 1.0f - (float)((max - cur) / max); m_UserEXPLabel.text = (cur + "/" + max); cur = Util.ConvertToInt(UserInfo.instance.GetUserData(USER_INFO.USER_INFO_CUR_ENERGY)); max = Util.ConvertToInt(UserInfo.instance.GetUserData(USER_INFO.USER_INFO_MAX_ENERGY)); m_UserEnergy.text = (cur + "/" + max); m_UserGold.text = UserInfo.instance.GetUserData(USER_INFO.USER_INFO_GOLD); }
void PanelOnOff(UI_PANEL_INDEX eindex, bool bStack = true) { if (bStack) { m_StackPanel.Push(m_eCurPanel); } m_eCurPanel = eindex; //현재 패널 if (eindex != UI_PANEL_INDEX.PANEL_VALKYRJA && eindex != UI_PANEL_INDEX.PANEL_CHAR_INFO && eindex != UI_PANEL_INDEX.PANEL_ITEM_SELECT) { GameManager.instance.DestroyModel(); //이 외의 패널은 모두 현재 선택된 캐릭터를 다시 반납한다. } if (eindex == UI_PANEL_INDEX.PANEL_LOBBY) { MainCharSet(true); m_ListPanel[(int)UI_PANEL_INDEX.PANEL_BUTTON].gameObject.SetActive(false); } else { MainCharSet(false); m_ListPanel[(int)UI_PANEL_INDEX.PANEL_BUTTON].gameObject.SetActive(true); //무슨 패널이라도 무조건 켜주는 버튼 패널 } for (int i = (int)UI_PANEL_INDEX.PANEL_START; i < (int)UI_PANEL_INDEX.PANEL_END - 1; i++) { if (i == (int)eindex) //켜고자 하는 거 외에는 모두 꺼라 { m_ListPanel[i].gameObject.SetActive(true); } else { m_ListPanel[i].gameObject.SetActive(false); } } }
public void OnClick() { //로비에서 사용되는 버튼들은 여기서 구분한다. string Button = UIButton.current.name; if (Button == "StageButton") { PanelOnOff(UI_PANEL_INDEX.PANEL_STAGE); } else if (Button == "HomeButton") { Vector3 vec = Camera.main.transform.position; vec.x = 0; Camera.main.transform.position = vec; PanelOnOff(UI_PANEL_INDEX.PANEL_LOBBY); GameManager.instance.ResetData(); } else if (Button == "BackButton") { Vector3 vec = Camera.main.transform.position; vec.x = 0; Camera.main.transform.position = vec; //이전 패널 UI_PANEL_INDEX eCur = m_eCurPanel; UI_PANEL_INDEX eIndex = m_StackPanel.Pop(); PanelOnOff(eIndex, false); if (eCur == UI_PANEL_INDEX.PANEL_ITEM_SELECT) //현재 패널이 아이템 셀렉이고 이전 패널로 돌아간다면? { if (m_iItemSelect == 0) { m_ListPanel[(int)UI_PANEL_INDEX.PANEL_CHAR_INFO].GetComponent <CharInfoPanel>().UiOnOff(CHAR_INFO_UI.CHAR_INFO_UI_WEAPON); } else if (m_iItemSelect == 1) { m_ListPanel[(int)UI_PANEL_INDEX.PANEL_CHAR_INFO].GetComponent <CharInfoPanel>().UiOnOff(CHAR_INFO_UI.CHAR_INFO_UI_STIGMA); } m_iItemSelect = -1; } if (m_eCurPanel == UI_PANEL_INDEX.PANEL_LOBBY || m_eCurPanel == UI_PANEL_INDEX.PANEL_STAGE) { GameManager.instance.ResetData(); } } else if (Button.Contains("Stage_")) //스테이지 버튼 중 하나를 클릭 { string[] split = Button.Split('_'); string stage = split[split.Length - 1]; GameManager.instance.StageSelect(int.Parse(stage)); //내가 선택한 스테이지 임시 저장 PanelOnOff(UI_PANEL_INDEX.PANEL_STAGE_READY); //캐릭터 선택 패널로 넘어가며 여기서 내가 가진 캐릭터로 세팅 할 수 있다. } else if (Button.Contains("SelectChar_")) //유저가 캐릭터 선택 창을 클릭하였다. { //무슨 캐릭터 선택창을 선택했는가를 확인 string[] split = Button.Split('_'); m_strCharSelect = split[split.Length - 1]; //내가 선택한 캐릭터 선택창 임시 저장 PanelOnOff(UI_PANEL_INDEX.PANEL_VALKYRJA); //캐릭터 선택창을 선택하면 해당 스크립트가 실행되면서 활동한다. m_ListPanel[(int)UI_PANEL_INDEX.PANEL_VALKYRJA].GetComponent <ValkyrjaPanel>().ButtonOnOff(true); } else if (Button == "SelectButton") { //캐릭터 선택 버튼을 눌렀으면 이전 패널로 돌아가며, 스프라이트에 해당 캐릭터의 그림과 이름이 올라간다. if (GameManager.instance.CharSelectComplete(int.Parse(m_strCharSelect))) { m_ListPanel[(int)UI_PANEL_INDEX.PANEL_STAGE_READY].GetComponent <StageReadyPanel>().SelectChar(m_strCharSelect); PanelOnOff(UI_PANEL_INDEX.PANEL_STAGE_READY, false); m_StackPanel.Pop(); } } else if (Button == "StageStart") { if (GameManager.instance.StageReady()) { GameManager.instance.GameStart(); //게임 시작 } } else if (Button == "Valkyrja") { //캐릭터 창, 여기서 장비 장착등이 가능하다. PanelOnOff(UI_PANEL_INDEX.PANEL_VALKYRJA); m_ListPanel[(int)UI_PANEL_INDEX.PANEL_VALKYRJA].GetComponent <ValkyrjaPanel>().ButtonOnOff(false); } else if (Button == "Equipment") { PanelOnOff(UI_PANEL_INDEX.PANEL_EQUIPMENT); } }