본문 바로가기

Unity

[Unity] 퀘스트를 만들어보자(1)

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(10new QuestData("사람들과 대화하기"new int[] { 10002000 }));
        questList.Add(20new QuestData("증기를 찾아라"new int[] { 50002000 }));
        questList.Add(30new QuestData("퀘스트 올 클리어"new int[] { 0 }));
    }
}

 

다음은 QuestManager 스크립트를 생성해준다.

 

  • questId - qusetId를 저장할 변수이다.
  • questActionIndex - 현재 진행되고 있는 퀘스트 인덱스를 저장할 변수이다.
  • questObject - 퀘스트에 필요한 오브젝트들을 저장할 변수이다.
  • questList - 직접적인 퀘스트 내용을 저장할 변수이다.

 

Start 함수를 통해서 questList를 생성해주고 GenerateData 함수를 실행시켜준다.

 

GenerateData 함수는 퀘스트의 정보를 저장하는 역할을 한다. Dictionary<int, QuestData>로 정보를 입력받는데 int에는 퀘스트의 아이디값을 저장하고, QuestData에는 퀘스트 이름과 퀘스트를 깨기 위한 npc 대화 순서가 저장한다.

728x90