유니티기초[유니티 기초] 98_마지막 문제에서 퀴즈 결과 출력하기

엔게디
2020-06-28
조회수 91

오늘은 마지막 문제를 다 풀면 퀴즈 결과를 출력하도록 합니다. 이전에 버그도 함께 수정합니다~


오늘은 마지막 문제를 다 풀면 퀴즈 결과를 출력하도록 합니다. 이전에 버그도 함께 수정합니다~


using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

using UnityEngine.EventSystems;

public class GameManager : MonoBehaviour

{

    public static GameManager instance;

    public Text QuizText;

    public Text RightAnswer; 

    public Text GameScoreText;

    public Text ButtonText1;

    public Text ButtonText2;

    public Text ButtonText3;

    public  List<string> QuizTextArray = new List<string>();

    public  List<string> AnswerTextArray = new List<string>();

    public string[] answer;

    public int GameScore = 0;

    public int QuizNum = 0;

    public int TotalQuizNum = 3;

    public string AnswerText;

    void Awake()

    {

        instance = this;

    }

    void Start()

    {

        QuizTextArray.Add("3+2=");

        QuizTextArray.Add("5+4=");

        QuizTextArray.Add("7+3=");

        AnswerTextArray.Add("5,6,7,5");

        AnswerTextArray.Add("8,9,10,9");

        AnswerTextArray.Add("9,10,11,10");

        AnswerText = AnswerTextArray[QuizNum];

        answer = AnswerText.Split(',');

        QuizText.text = QuizTextArray[QuizNum];

        ButtonText1.text = answer[0];

        ButtonText2.text = answer[1];

        ButtonText3.text = answer[2];

        RightAnswer.text = answer[3];

        GameScoreText.text = "점수: "+ GameScore;

    }

}



모든 문제를 맞출 경우 콘솔에 출력하는 코드를 완성합니다.


using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;


public class ButtonCheck : MonoBehaviour

{

    public void AnswerButton()

    {

        //Debug.Log("보기: " + this.GetComponentInChildren<Text>().text);

        //Debug.Log("정답: " + GameObject.FindGameObjectWithTag("RightAnswerText").GetComponent<Text>().text);

        //Debug.Log("정답: " + GameManager.instance.answer[3]);

        //Debug.Log("점수: " + GameManager.instance.GameScore);

        GameManager.instance.QuizNum++;

        if (GameObject.FindGameObjectWithTag("RightAnswerText").GetComponent<Text>().text == this.GetComponentInChildren<Text>().text)

        {

            Debug.Log("정답입니다~");


            GameManager.instance.GameScore += 10;

            Debug.Log("점수: " + GameManager.instance.GameScore);

        }

        if (GameManager.instance.QuizNum < GameManager.instance.TotalQuizNum)

        {

            GameManager.instance.QuizText.text = GameManager.instance.QuizTextArray[GameManager.instance.QuizNum];

            GameManager.instance.ButtonText1.text = GameManager.instance.answer[GameManager.instance.QuizNum];

            GameManager.instance.AnswerText = GameManager.instance.AnswerTextArray[GameManager.instance.QuizNum];

            GameManager.instance.answer = GameManager.instance.AnswerText.Split(',');


            GameManager.instance.ButtonText1.text = GameManager.instance.answer[0];

            GameManager.instance.ButtonText2.text = GameManager.instance.answer[1];

            GameManager.instance.ButtonText3.text = GameManager.instance.answer[2];

            GameManager.instance.RightAnswer.text = GameManager.instance.answer[3];

        }

        else

        {

            if (GameManager.instance.GameScore == 30)

            {

                Debug.Log("모든 문제를 맞추었습니다.^^");

            }

            Debug.Log("게임 종료");

        }

        GameManager.instance.GameScoreText.text = "점수: " + GameManager.instance.GameScore;

    }

}



다음과 같이 모든 문제를 맞추면 콘솔에 결과가 출력됩니다.

2 0

매일 한알의 마늘처럼 하나의 미션 수행!

동굴뛰쳐나가지 않고 매일 하나의 마늘을 먹기!!!

게임이나 VR, AR 에 유니티가 언리얼과 같이 많이 사용된다고 듣긴 했지만 나와는 관계없는 프로그램 같았습니다. 그러다가 우연한 계기로 게임 디자인을 하면서 유니티에 관심이 생겼습니다. 


자바스크립트가 유니티와 연동된다고 하니, 유니티가 매력있게 다가왔습니다. 유니티까지 활용한다면 작업 영역의 확장 뿐만 아니라 재미있는 콘텐츠를 제작할수 있겠다는 가능성이 보였습니다.


내가 기획하고, 디자인하고, 개발까지 하여 하나의 게임 앱을 만들수가 있다니! 얼마나 달콤한 유혹인지 모릅니다. 물론 수 많은 산을 넘고 에러를 넘고, 오류를 넘어야 하는 것은 각오를 해야 합니다. 그럼에도 불구하고 무척 매력적 입니다. 인고의 시간을 지나면 나는 상상력을 구현할수 있는 하나의 툴을, 도구를 장착할수 있는 것입니다. 아!이!언!맨! 처럼 말이지요!!!


카카오프로젝트 100은 게으른 저를 동기부여해 줍니다. 당장 통장에 계좌가 찍히는 일은 열심히 하게 되지만, 새로운것을 공부할 때는 의지가 참 약해지고 용두사미가 됩니다. 그런 의미에서 카카오프로젝트 100은 100일동안 의지를 불태울수 있는 작은 동기가 됩니다. 카카오프로젝트 시즌1에서는 자바스크립트 기초를 정리했습니다. 

시즌 2에서는 새로운 공부를 도전합니다. 바로 유!니!티!


여러분 생각은 어떤가요?