728x90
2편에 이어서 3편을 만들어보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TalkManager : MonoBehaviour
{
void MakeData()
{
talkData.Add(10 + 1000, new string[] { "넌 뭐야", "오른쪽으로 가봐" });
talkData.Add(11 + 2000, new string[] { "넌 뭐야", "할거 없어보이는데", "내 증기 좀 찾아줘" });
talkData.Add(20 + 5000, new string[] { "난 증기야", "날 잡아봐" });
talkData.Add(21 + 2000, new string[] { "뭐야", "증기를 찾아달랬지 왜 잡아왔어" })
}
|
TalkManager 스크립트 추가 내용만 설명하겠습니다.
MakeData에 추가된 내용들은 퀘스트 내용입니다. 9행은 10 + 1000, 10행의 11 + 2000은 같은 퀘스트입니다. 왜냐하면 십의 자리 숫자가 같기 때문입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public string GetTalk(int id, int talkIndex)
{
if (!talkData.ContainsKey(id))
{
if(!talkData.ContainsKey(id - id % 10))
{
return GetTalk(id - id % 100, talkIndex);
}
else
{
return GetTalk(id - id % 10, talkIndex);
}
}
if (talkIndex == talkData[id].Length)
{
return null;
}
else
return talkData[id][talkIndex];
}
}
|
GetTalk 함수는 대화 정보를 가져올 함수입니다. 첫번째 조건문은 현재 퀘스트를 진행 중이 아니거나 퀘스트와 상관없는 npc에게 말을 걸었을 때 기본적으로 설정해놓은 대화가 이어질 수 있게 해준 것이고, 두번째 조건문은 퀘스트를 진행 중인 npc를에게 말을 걸었을 때 미리 설정해놓은 퀘스트 대하가 이뤄질 수 있게 해놓은 것이다.
728x90
'Unity' 카테고리의 다른 글
[Unity] 오브젝트 풀링은 뭐야? (0) | 2020.05.23 |
---|---|
[Unity] 퀘스트를 만들어보자(4) (0) | 2020.05.18 |
[Unity] 퀘스트를 만들어보자(2) (0) | 2020.05.16 |
[Unity] 퀘스트를 만들어보자(1) (0) | 2020.05.15 |
[Unity] npc와 대화를 해보자(2) (0) | 2020.05.14 |