using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class A1M2QuestionManager : MonoBehaviour { public List questions; public static A1M2QuestionManager instance; public AudioSource thisAS; public Image bgImage; public Transform answerOrganizer; public Text questionTxt; private int currentIndex; private Animator anim; private void Awake() { instance = this; anim = GetComponent(); LoadNextQuestion(); GameControl.instance.StartedGame(); } public void LoadNextQuestion() { // Verifica se ainda existem perguntas antes de carregar if (currentIndex >= questions.Count) { GameControl.instance.FinishGame(); return; } if (questions[currentIndex].background) { bgImage.sprite = questions[currentIndex].background; } questionTxt.text = questions[currentIndex].questionString; SetupAnswers(); } public void SetupAnswers() { List btnList = new List(); btnList.AddRange(answerOrganizer.GetComponentsInChildren()); for(int i = 0; i < btnList.Count; i++) { btnList[i].SetupThis(questions[currentIndex].answers[i]); } PlayAudio(); } public void CorrectAnswer() { anim.SetTrigger("Correct"); A10D1AudioSystem.instance.Correct(); currentIndex++; if (currentIndex < questions.Count) { StartCoroutine(WaitToNext()); } else { GameControl.instance.FinishGame(); } } public void WrongAnswer() { anim.SetTrigger("Wrong"); A10D1AudioSystem.instance.Wrong(); } public void PlayAudio() { if (thisAS.isPlaying) { StartCoroutine(QueueSound(questions[currentIndex].questionAC)); } else { thisAS.PlayOneShot(questions[currentIndex].questionAC); } } IEnumerator QueueSound(AudioClip toPlay) { while(thisAS.isPlaying) { yield return new WaitForEndOfFrame(); } thisAS.PlayOneShot(toPlay); } IEnumerator WaitToNext() { yield return new WaitForSecondsRealtime(1); LoadNextQuestion(); } }