목표
npc 와 대화
반복퀘스트
(작업 기간 : 2023.09.14~09.23 (10일 소요), npc 퀘스트 처리 방식 설계를 잘못하여 다시 구현하느라 오래걸림)
1. npc 와 대화
- npc에 정보를 담아줄 스크립트 NPC_Info 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class NPC_Info : MonoBehaviour
{
public string npcName; // npc 이름
public int npcQuestNum; // 해당 npc가 진행중인 퀘스트
public TextAsset npcQuestText; // npc에 할당된 텍스트
public List<Dictionary<string, object>> data; // npc 데이터 읽기
private void Start()
{
data = CSVReader.Read(npcQuestText.name);
}
}
|
cs |
- npc 마다 퀘스트 진행을 별개로 처리할 수 있음
ㄴ NPC 별 할당 텍스트를 개별로 주어 관리가 용이하도록 함
- 대화로그 처리는 게임매니저에서 npc와의 대화라면 npcQuestActive를 true로, 시스템 대화라면 npcQuestActive를 false로 처리하여 시스템 퀘스트의 진행도가 침범받지 않도록 처리
- 아이템 습득처럼 카메라에서 Ray를 쏘아 대화가 가능한 NPC의 경우 대화 선택지 출력으로 대화 진입
2. 반복퀘스트
- 퀘스트 이후 해당 npc의 퀘스트 번호를 이전 대화 지문으로 돌려 다시 반복할 수 있도록 함
ㄴ 진행도에 따른 대화 변화는 GameManager의 stage_index를 활용하여 처리
- 적 소탕 퀘스트를 예시로 만들었기 때문에 퀘스트 수락 시 리스폰 하는 방식으로 구현
3. 전투 판정 수정
- 공격시 선딜 추가
- 적이 일정 범위 내 상대 추적
ㄴ 플레이어와의 거리를 Vector3.Distance 로 계산하여 멀어지면 추적 정지
결과물
- 시스템이 부여한 퀘스트와 npc(현재는 튜토리얼 북에서 받음)가 부여한 퀘스트가 별개로 작동
- 포션 퀘스트에서 사용시 퀘스트를 체크하여 소모품 퀘스트가 있다면 해당 퀘스트 아이템과 같을 경우 카운트
- 적이 일정 범위에서 플레이어 추적 (현재 범위 5로 설정)
'유니티 게임 개발 > 3D Portfolio' 카테고리의 다른 글
[유니티] 3D Portfolio #11 그래픽 최적화 작업 (1) | 2023.10.06 |
---|---|
[유니티] 3D Portfolio #10 적 HP 바 구현, 기존 코드 상속코드화 (0) | 2023.09.26 |
[유니티] 3D Portfolio #8 퀘스트 시스템 구현, 전체적인 리팩토링 (0) | 2023.09.13 |
[유니티] 3D Portfolio #7 CSV를 활용한 대화창, 튜토리얼 제작(기초작업) (0) | 2023.09.02 |
[유니티] 3D Portfolio #6 전투 시스템 제작 (0) | 2023.08.29 |