인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

수강평 1

평균평점 5.0

47% 수강 후 작성

안녕하세요. 좋은 강의 잘 듣고 있습니다. 다름이 아니고 NPC와의 대화를 태스크로 하는 경우는 어떤 방식으로 처리해야 할까요? NPC ID나 대화 내용을 태스크가 어떤 방식으로 가지고 있어야하는지 감이 안오네요. 타겟을 NPC ID로 하고, NPC와의 대화가 끝났을 때 성공횟수를 카운팅하는 방식이어야 할까요? 그렇다면 대화내용은 태스크가 가지고 있는것이 아니라 따로 관리를 해야하는건지.. 아이디어를 주시면 감사하겠습니다.

Developer G님의 프로필 이미지
Developer G
지식공유자

수강해주셔서 감사합니다. 저는 Dialgoue System과 Quest System이 통합되어 있는 방식을 좋아하지않습니다. Dialogue System은 활용할 곳이 많은데 통합하면 Quest System에 종속되버려 활용도가 떨어지게 되기 때문입니다. 그래서 Dialogue System을 따로 갖춘걸 추천드립니다. Dialogue System을 따로 구성할 경우 Task가 보고 받을 정보는 간단히 Category는 Dialogue, Target은 StringTarget이나 IntTarget으로 Dialogue의 ID를 받으면 됩니다. Report를 어떻게할 것이냐에 대해서는 Dialogue System을 어떻게 만드냐에 따라 달라져서 확실히 뭐라 말씀드리긴 힘듭니다. 다만 가장 대중적인 방식은 역시 Dialogue System이 Dialogue를 실행할 때, Text를 출력할 때, Dialogue가 끝날 때 실행되는 event 변수들을 가지고 있고, 필요한 event에 Report를 연결하면 된다 정도로 정리해드릴 수 있을 것 같습니다. 예를 들어 DialogueSystem에 event Action<Dialogue> onDialogueStarted라는 event가 있을 경우 onDialogueStarted += (dialogue) => QuestSystem.Instance.ReceiveReport("Dialogue", dialogue.ID, 1) 이런식으로 말이죠.(event를 어떻게 연결할지는 본인 마음입니다.)

[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템 썸네일
Developer G

·

19강

·

680명 수강

[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템 썸네일
Developer G

·

19강

·

680명 수강