public static string GetAblityString(E_AblityType p_type) { string retstr = ""; switch (p_type) { case E_AblityType.Battlerage: retstr = "격투"; break; case E_AblityType.Achery: retstr = "야성"; break; case E_AblityType.Sorcery: retstr = "마법"; break; case E_AblityType.Songcraft: retstr = "낭만"; break; case E_AblityType.Shadowpaly: retstr = "사명"; break; case E_AblityType.Auramancy: retstr = "의지"; break; } return(retstr); }
// 버튼 클릭 처리(초기화, 능력 선택) void BtnClickProcess(E_AblityType p_ablitytype) { bool is_reset = false; bool is_set = false; // https://openplay.tistory.com/7 EventSystem 참고 GameObject tempobj = EventSystem.current.currentSelectedGameObject; // 현재 버튼 클릭한 게임 오브젝트 // Debug.Log(tempobj.name); // 클릭한 오브젝트 이름 확인용 // 초기화 for (int i = 0; i < m_Ablity_ObjArr.Length; i++) { // 현재 클릭한 버튼오브젝트와 같은 이름의 오브젝트가 있는지 확인 if (m_ResetBtn_List[i].name == tempobj.name) { GameObject skillset = m_Ablity_ObjArr[i].transform.GetChild(0).gameObject; // 선택한 능력창의 스킬셋 // 전투, 지속 스킬창 위치 보내서 스킬 초기화 for (int j = 0; j < (int)E_SkillType.Max; j++) { m_SkillManager.Destroy_Skill_List(skillset.transform.Find("스킬창").GetChild(j), i); } skillset.SetActive(false); // 스킬셋 비활성화 m_Ablity_SelectBtnArr[i].SetActive(true); // 버튼 활성화 m_Ablity_TypeArr[i] = E_AblityType.None; // 해당 능력창 타입 초기화 is_reset = true; break; } } // 초기화 버튼일시 아래 부분 처리하지 않고 넘어감 if (is_reset) { return; } bool is_exist = false; int count = 0; // 능력 선택 for (int i = 0; i < m_Ablity_ObjArr.Length; i++) { for (int j = 0; j < (int)E_AblityType.Max; j++) { if (m_Ablity_SelectBtnArr[i].transform.GetChild(j).name == tempobj.name) // 버튼 클릭한 게임 오브젝트 스킬셋만 활성화 하기 위함 { for (int k = 0; k < m_Ablity_TypeArr.Length; k++) // 이미 있는 능력인지 확인 { if (m_Ablity_TypeArr[k] == E_AblityType.None) // 능력창 선택한게 있는지 확인 { ++count; if (count == m_Ablity_TypeArr.Length) { break; // 능력창 3개다 선택하지 않은 경우 } continue; } if (m_Ablity_TypeArr[k] == p_ablitytype) // 선택한 능력창이 있는 경우 { is_exist = true; DataBase.Instance.DestroyListData(); // 이미 있는 능력이므로 로드한 데이터 삭제 Debug.Log("이미 있는 능력 입니다."); break; } } // k for문 if (is_exist) // 능력이 이미 있으면 함수 종료 { break; } GameObject obj = m_Ablity_ObjArr[i].transform.GetChild(0).gameObject; // 선택한 능력창의 스킬셋 obj.SetActive(true); // 스킬셋 활성화 m_Ablity_SelectBtnArr[i].SetActive(false); // 버튼 비활성화 // 전투, 지속 스킬창 위치 보내서 스킬 세팅 for (int k = 0; k < (int)E_SkillType.Max; k++) { m_SkillManager.Set_Skill(obj.transform.Find("스킬창").GetChild(k), i, null); } // 능력창 능력 타입 설정 m_Ablity_ObjArr[i].GetComponent <Ablity_Info>().m_Ablity.SetAblity(m_SkillManager.GetAblityType(i)); m_Ablity_TypeArr[i] = m_Ablity_ObjArr[i].GetComponent <Ablity_Info>().m_Ablity.ablity; is_set = true; break; } } if (is_set || is_exist) { break; } } }