예제 #1
0
    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);
    }
예제 #2
0
    // 버튼 클릭 처리(초기화, 능력 선택)
    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;
            }
        }
    }