125 lines
3.5 KiB
C#
125 lines
3.5 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
|
|
|
|
namespace PahlawanEnergi.Quiz
|
|
{
|
|
public class QuizScreen : MonoBehaviour
|
|
{
|
|
[Header("Reference global")]
|
|
[SerializeField] private QuizResultScreen resultScreen;
|
|
|
|
[Header("Reference local")]
|
|
[SerializeField] private CanvasGroup canvasGroup;
|
|
[SerializeField] private TextMeshProUGUI questionText;
|
|
[SerializeField] private GameObject questionContainer;
|
|
[SerializeField] private GameObject resultContainer;
|
|
[SerializeField] private ButtonChoice choicePrefab;
|
|
[SerializeField] private Transform choicesParent;
|
|
[SerializeField] private List<ButtonChoice> choices;
|
|
|
|
|
|
[Header("Data")]
|
|
[SerializeField] private QuizItem quizItem;
|
|
|
|
|
|
[Header("Audio")]
|
|
[SerializeField] private AudioSource audioSource;
|
|
[SerializeField] private AudioClip clipCorrect;
|
|
[SerializeField] private AudioClip clipIncorrect;
|
|
|
|
|
|
private void OnEnable()
|
|
{
|
|
ShowQuestion();
|
|
questionContainer.SetActive(true);
|
|
resultContainer.SetActive(false);
|
|
}
|
|
|
|
public void InitializeQuestion(int questionId)
|
|
{
|
|
quizItem = QuizManager.instance.GetQuestion(questionId);
|
|
}
|
|
|
|
public void ShowQuestion()
|
|
{
|
|
questionText.text = quizItem.question;
|
|
|
|
for (int i = 0; i < quizItem.answerChoices.Length; i++)
|
|
{
|
|
if(i < choices.Count)
|
|
{
|
|
choices[i].Setup(this, quizItem.answerChoices[i]);
|
|
}
|
|
else
|
|
{
|
|
ButtonChoice choice = Instantiate(choicePrefab, choicesParent);
|
|
choice.Setup(this, quizItem.answerChoices[i]);
|
|
choices.Add(choice);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
/*public void AnswerTrue()
|
|
{
|
|
questionContainer.gameObject.SetActive(false);
|
|
resultScreen.ShowResult(quizItem.answer == true);
|
|
resultContainer.gameObject.SetActive(true);
|
|
QuizManager.instance.CompleteQuestion(quizItem.id);
|
|
|
|
if(quizItem.answer == true)
|
|
{
|
|
QuizManager.instance.AddScore(1);
|
|
}
|
|
|
|
}
|
|
|
|
public void AnswerFalse()
|
|
{
|
|
questionContainer.gameObject.SetActive(false);
|
|
resultScreen.ShowResult(quizItem.answer == false);
|
|
resultContainer.gameObject.SetActive(true);
|
|
QuizManager.instance.CompleteQuestion(quizItem.id);
|
|
|
|
if (quizItem.answer == false)
|
|
{
|
|
QuizManager.instance.AddScore(1);
|
|
}
|
|
}*/
|
|
|
|
|
|
public void CloseScreen()
|
|
{
|
|
gameObject.SetActive(false);
|
|
QuizManager.instance.CheckEndGame();
|
|
}
|
|
|
|
internal void Answer(bool isCorrectAnswer)
|
|
{
|
|
questionContainer.gameObject.SetActive(false);
|
|
resultScreen.ShowResult(isCorrectAnswer, isCorrectAnswer? quizItem.messageWhenCorrect : quizItem.messageWhenUncorrect);
|
|
resultContainer.gameObject.SetActive(true);
|
|
QuizManager.instance.CompleteQuestion(quizItem.id);
|
|
|
|
if (isCorrectAnswer)
|
|
{
|
|
QuizManager.instance.AddScore(1);
|
|
}
|
|
|
|
if (audioSource)
|
|
{
|
|
audioSource.PlayOneShot(isCorrectAnswer? clipCorrect: clipIncorrect);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|