728x90
퀘스트를 만들어서 진행하는 것을 만들어볼 것이다. 퀘스트 만들기는 조금 심화과정이기 때문에 여러편에 걸쳐서 만들어지게 될 것 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class QuestData
{
public string questName;
public int[] npcId;
public QuestData(string name, int[] npc)
{
questName = name;
npcId = npc;
}
}
|
먼저 QuestData 스크립트를 만든다. 간단한 퀘스트의 이름과 나중에 사용할 npcId를 저장해준다.
- questName - 퀘스트 이름을 저장할 변수이다.
- npcId - 퀘스트에 맞는 npc 순서를 저장할 변수이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class QuestManager : MonoBehaviour
{
public int questId;
public int questActionIndex;
public GameObject[] questObject;
Dictionary<int, QuestData> questList;
void Start()
{
questList = new Dictionary<int, QuestData>();
GenerataData();
}
void GenerataData()
{
questList.Add(10, new QuestData("사람들과 대화하기", new int[] { 1000, 2000 }));
questList.Add(20, new QuestData("증기를 찾아라", new int[] { 5000, 2000 }));
questList.Add(30, new QuestData("퀘스트 올 클리어", new int[] { 0 }));
}
}
|
다음은 QuestManager 스크립트를 생성해준다.
- questId - qusetId를 저장할 변수이다.
- questActionIndex - 현재 진행되고 있는 퀘스트 인덱스를 저장할 변수이다.
- questObject - 퀘스트에 필요한 오브젝트들을 저장할 변수이다.
- questList - 직접적인 퀘스트 내용을 저장할 변수이다.
Start 함수를 통해서 questList를 생성해주고 GenerateData 함수를 실행시켜준다.
GenerateData 함수는 퀘스트의 정보를 저장하는 역할을 한다. Dictionary<int, QuestData>로 정보를 입력받는데 int에는 퀘스트의 아이디값을 저장하고, QuestData에는 퀘스트 이름과 퀘스트를 깨기 위한 npc 대화 순서가 저장한다.
728x90
'Unity' 카테고리의 다른 글
[Unity] 퀘스트를 만들어보자(3) (0) | 2020.05.17 |
---|---|
[Unity] 퀘스트를 만들어보자(2) (0) | 2020.05.16 |
[Unity] npc와 대화를 해보자(2) (0) | 2020.05.14 |
[Unity] npc와 대화를 해보자(1) (0) | 2020.05.13 |
[Unity] 대화창을 만들어 object의 이름을 출력해보자 (0) | 2020.05.12 |