[유니티] 3D Portfolio #8 퀘스트 시스템 구현, 전체적인 리팩토링
목표
퀘스트 시스템 구현
전체적인 코드 리팩토링
(작업 기간 : 2023.09.10~09.13 (4일 소요))
1. 퀘스트 시스템 구현
1) 1차 구현
- 기존에 만들어둔 대화창 코드에 덧붙이는 식으로 1차 작동 구현
- 코드의 참조가 복잡해지는 것을 느껴 퀘스트 시스템을 슬롯 프리팹 형식을 사용해서 슬롯별로 관리해주기로 함
2) 2차 구현
- 슬롯 프리팹을 사용하며 코드는 간결해졌으나 가독성과 CSV와의 연계가 힘들어짐
- 범용성이 떨어져 매 챕터마다 새로 짜야하는 불편함 발생
- 구현한 시스템 자체를 사용할 수 있도록 CSV 파일 자체 구조 변경과 전체적인 리팩토링 필요성을 느껴 작업 시작
2. 코드 리팩토링
1) 3차 구현
- 현재 플레이어가 대화하고 있는 퀘스트 대상을 GameManager 에서 int questNum으로 관리
- questNum 을 기준으로 DialogText.cs 스크립트를 사용하여 TutoralText.csv 파일에서 읽어와 대화를 진행
- TutoralText.csv 에서 QuestGet을 통해 QuestTab의 퀘스트 정보를 받아오도록 구성
- QuestTab에서 questNum의 QuestSlot 프리팹을 생성하여 정보를 받아두고 퀘스트 처리
2) 리팩토링
- 퀘스트 등에서 인벤토리의 아이템을 직접 확인하는게 아닌 인벤토리 슬롯명을 변경해두어 적은 비용으로 탐색 가능하도록 함
- 퀘스트 갱신은 아이템 습득 퀘스트는 아이템 습득 시에만, 적 처치 퀘스트는 적 처치 시에만 작동하도록 최적화
3. 튜토리얼 결과물
※ 포션 사용 튜토리얼 추가 예정