04/15 본캠프 #77

guno park·2024년 4월 15일
0

본캠프

목록 보기
77/77

DB에 조건 추가하기

Dialogue들에도 조건을 추가하고 있다.
람다식으로 현재 선택된 대화선택지를 조건이 모두 충족되면 true가 되도록 작성 중인데 예상과 다르게 오류가 발생한다.

찾아보니 데이터 불러올 때 쓰는 객체에 접속하려고 하고있었다. 다른 사전형 데이터에 연결하여 문제없이 해결한 듯 보이지만 실제로 해보기 전까지는 모른다.

지난번처럼 선택지의 상태를 먼저 체크한 후, 아이템이 필요한지 체크하여 걸러주고, 거기까지 통과한다면 선행해서 진행되어야 할 대화가 있는 지 체크하도록 작성해주었다.

 if (data.Log_Type == Log_Type.choose || !data.Event_Log_State[i])
            {
                if (!DataManager.Instance._inventory.inventory.ContainsKey(int.Parse(data.Check_Item[i])))
                {
                    return;
                }

                string[] checkqeust = data.Check_Quest[i].Split(',');

                if (int.TryParse(checkqeust[0], out int result))
                {
                    choice_btn[i].gameObject.SetActive(true);
                    choice_btn[i].GetComponentInChildren<TextMeshProUGUI>().text = data.Event_Log[i];
                }
                else
                {
                    if (!DataManager.Instance._questDic.DialogueQuestDic[checkqeust[0]][int.Parse(checkqeust[1])]
                            .QuestState)
                        return;
                    else
                    {
                        choice_btn[i].gameObject.SetActive(true);
                        choice_btn[i].GetComponentInChildren<TextMeshProUGUI>().text = data.Event_Log[i];
                    }
                }
            }        

if의 depth가 깊어지지 않도록 return으로 다 끊어주고 싶었지만, 이정도만 끊어도 적절한 것 같다.
Quest 체크하는 부분이 제대로 동작할 지 걱정이다.

0개의 댓글