본문 바로가기

Unity

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

728x90

퀘스트 만들기 마지막편입니다. GameManager 스크립트의 추가 내용을 설명하겠습니다.

 

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class GameManager : MonoBehaviour
{
     void Start()
    {
        questText.text = questManager.CheckQuest();
        Debug.Log(questManager.CheckQuest());
    }
 
     void OnTalk(int id, bool isNpc)
    {
        int questTalkIndex = questManager.GetQuestTalkIndex(id);
        string talkData = talkManager.GetTalk(id + questTalkIndex, talkIndex);
 
        if(talkData == null)
        {
            isMove = false;
            talkIndex = 0;
            questText.text = questManager.CheckQuest(id);
            Debug.Log(questManager.CheckQuest(id));
            return;
        }
 
        if (isNpc)
        {
            talkText.text = talkData;
            portraitImage.sprite = talkManager.GetSprite(id);
            portraitImage.color = new Color(1111);
        }
        else
        {
            talkText.text = talkData;
            portraitImage.color = new Color(1110);
        }
 
        isMove = true;
        talkIndex++;
    }
}

 

일단 Start 함수에서 CheckQuest 함수를 사용하여 진행 중인 퀘스트의 이름을 가져옵니다.

 

OnTalk 함수는 questTalkIndex를 가져와서 적절한 talkData를 저장받아서 talkText.Text에 설정해주어 화면에 talkData가 보이게 해준다.

 

결과 화면

 

이렇게 퀘스트 만들기를 완성해보았는데 퀘스트는 개발이랑은 다르게 모든 대화 내용과 퀘스트 오브젝트를 설정해줘야한다는 부분에서 많은 시간이 소요되는 것 같다.

728x90