Dialog System설정
오브젝트와 상호작용을 하게 되면, 오브젝트가 비활성화 되도록 만들어보자.
첫번째 퀘스트가 완료되고, 대화가 더 이어지도록 노드를 추가한다.
이런식으로 대화를 더 구성하였다.
테스트 퀘스트 2를 생성하고,
number형 변수를 하나 만들어주고, 값은 0으로 초기화하였다.
다시 퀘스트항목으로 돌아가
엔트리에 다음과 같이 입력해 변수를 등록해주자.
아까 만든 대화에서
아래의 네 라는 항목을 클릭해
스크립트를 만들자. 퀘스트를 활성화 하고, Alert메세지를 띄우도록 하였다.
그리고 두번째 테스트를 위해 Start노드에서 새로운 노드 하나를 더 만들어주자. 이 노드는 두번째 퀘스트가 활성화 되었을 때, 대화를 나타내기 위해 생성한것이다.
여기서도 두개의 답변을 추가하고, 이전에 했던것 처럼, 변수의 값이 성립될 때 뜨도록 설정해주자.
그리고, 퀘스트를 완료했을 때, 퀘스트 완료상태로 만들어주고, Alert가 뜨도록 설정해주자.
대화가 이어지도록, 대화 노드를 좀 더 추가했다.
그리고 이 대화는 두번째 퀘스트가 활성화 되어야 뜨도록 Condition을 바꿔보자.
이런식으로 만들어주면 된다.
인게임 설정
아이템 오브젝트 두개를 임시로 생성하고, 이전 글에서부터 마르고 닳도록 얘기했듯, 오브젝트에 Collider, Usable, Dialogue System Trigger 컴포넌트들을 붙여주자.
그리고 이전에 만들어뒀던 (나는 Check라는 이름의 오브젝트였다.) 오브젝트는 첫번 째 퀘스트에만 상호작용 되도록 조건을 추가해주자.
자 그리고, 방금 만든 Item에 상호작용을 붙여보자.
이런식으로, Item오브젝트는 퀘스트 2가 활성화되고, count가 0일때만 상호작용 할 수 있도록 설정해두고 Apply를 눌러주면 된다.
그리고 하단에 Add Action을 클릭해 Run Lua Code를 선택하자.
이런식으로, 아까 만든 Count변수를 Add할수있도록 설정한다.
To는 대입, Add는 더하기 Subract는 빼기 연산이다.
그리고 Add Actoin에서 알림을 띄우기 위해 Show Alert를 생성해주자.
이렇게 했다면, 오브젝트를 비활성화 시켜보자.
Add Action -> OnExecute() UnityEvent를 선택하자.
여기선 이벤트를 등록할 수 있는데, +를 눌러 이벤트를 생성 한 뒤, 오브젝트를 드래그 해서 등록한다.
그리고 SetActive를 선택해 비활성화 되도록 설정한다.
마지막으로 콜라이더에 IsTrigger를 체크해주자.
플레이어에게 Quest Log를 추가하기
퀘스트가 어떻게 진행되고 있는지 로그를 띄워주자.
플레이어를 선택해 Quest Log Window Hotkey 컴포넌트를 추가하자.
Q를 눌러 퀘스트창을 열 수 있도록 설정하자.
확인하기
UI설정이 적절치 않지만, 이전에 만들어 둔 질문이 진행되고 있다. 가려진 네를 누르면
이런식으로 상단에 퀘스트가 뜨게 된다.
그리고 Q키를 눌러 퀘스트 창을 열어보면
현재 진행중인 퀘스트,
완료된 퀘스트들도 보이게 된다.
이제 퀘스트창을 닫고 아이템에 상호작용을 해보자.
상호작용을 하게 되면, 아이템이 비활성화 되면서 퀘스트에 필요한 아이템 수가 1 증가하게 된다.
이전과 같이 네 버튼도 활성화 된것을 볼 수 있다.
모든 퀘스트를 완료하고, 퀘스트창을 열어보면 이렇게 완료된 퀘스트가 나타나게 된다.
'Develop > Dialog System' 카테고리의 다른 글
[Dialog System] 유저와 NPC간의 대화를 간편하게 만들어보자! - 3. 대화와 퀘스트 저장/불러오기 (0) | 2024.10.31 |
---|---|
[Dialog System] 유저와 NPC간의 대화를 간편하게 만들어보자! - 1.퀘스트를 생성해보자 (0) | 2024.10.31 |
[Dialog System] 유저와 NPC간의 대화를 간편하게 만들어보자! - 0. 설치와 간단한 대화 만들기 (0) | 2024.10.30 |