Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
3 participantes
Página 1 de 1
Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
Eu fiz meu código devido a este tutorial: https://www.youtube.com/watch?v=5dkKm-6jtdo&t=1092s
Só que meu quiz eu fiz por outro tutorial. As diferenças é que ele criou um código para o botão dele chamado "OptionButton", já eu não criei, apenas coloquei a função Button. Minhas perguntas são criadas manualmente com uma public, a dele ele puxa de uma lista. Sendo assim, eu a adaptei o código dele e fiz assim:
Eu ainda não vou colocar a função para mostrar se a pergunta está certa ou errado, pois teria que adaptar e não sei. Se alguém souber, me ajuda...
Só que meu quiz eu fiz por outro tutorial. As diferenças é que ele criou um código para o botão dele chamado "OptionButton", já eu não criei, apenas coloquei a função Button. Minhas perguntas são criadas manualmente com uma public, a dele ele puxa de uma lista. Sendo assim, eu a adaptei o código dele e fiz assim:
- Código:
private void Perguntas(Button button)
{
StartCoroutine(PerguntasRoutine(button));
}
private IEnumerator PerguntasRoutine(Button button)
{
yield return new WaitForSeconds(m_waitTime);
proximaPergunta();
}
Eu ainda não vou colocar a função para mostrar se a pergunta está certa ou errado, pois teria que adaptar e não sei. Se alguém souber, me ajuda...
Akuma97- Membro
- PONTOS : 2130
REPUTAÇÃO : 1
Respeito as regras :
Re: Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
O código não da erro, mas não funciona....
Akuma97- Membro
- PONTOS : 2130
REPUTAÇÃO : 1
Respeito as regras :
Re: Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
Akuma97 escreveu:Eu fiz meu código devido a este tutorial: https://www.youtube.com/watch?v=5dkKm-6jtdo&t=1092s
Só que meu quiz eu fiz por outro tutorial. As diferenças é que ele criou um código para o botão dele chamado "OptionButton", já eu não criei, apenas coloquei a função Button. Minhas perguntas são criadas manualmente com uma public, a dele ele puxa de uma lista. Sendo assim, eu a adaptei o código dele e fiz assim:
- Código:
private void Perguntas(Button button)
{
StartCoroutine(PerguntasRoutine(button));
}
private IEnumerator PerguntasRoutine(Button button)
{
yield return new WaitForSeconds(m_waitTime);
proximaPergunta();
}
Eu ainda não vou colocar a função para mostrar se a pergunta está certa ou errado, pois teria que adaptar e não sei. Se alguém souber, me ajuda...
Esqueci desta parte:
- Código:
[SerializeField] private float m_waitTime = 0.0f;
Akuma97- Membro
- PONTOS : 2130
REPUTAÇÃO : 1
Respeito as regras :
Re: Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
Mas tá 0 cara.. Deixa pelo menos 1 segundo só para ver se muda algo..
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
NKKF escreveu:Mas tá 0 cara.. Deixa pelo menos 1 segundo só para ver se muda algo..
Mas da pra mudar fora do código. Mesmo assim eu mudei no código, coloquei até 5 e nada...
Akuma97- Membro
- PONTOS : 2130
REPUTAÇÃO : 1
Respeito as regras :
Re: Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
Posta o Script Completo.
Talvez Possa Ser Algum "IF" Impedindo De Iniciar a Contagem.
Talvez Possa Ser Algum "IF" Impedindo De Iniciar a Contagem.
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
Magnatah escreveu:Posta o Script Completo.
Talvez Possa Ser Algum "IF" Impedindo De Iniciar a Contagem.
MEU CÓDIGO:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class responder : MonoBehaviour {
[SerializeField] private float m_waitTime = 0.0f;
private int idTema;
public Text pergunta;
public Text respostaA;
public Text respostaB;
public Text respostaC;
public Text respostaD;
public Text infoRespostas;
public string[] perguntas;
public string[] alternativaA;
public string[] alternativaB;
public string[] alternativaC;
public string[] alternativaD;
public string[] corretas;
private int idPergunta;
private float acertos;
private float questoes;
private float media;
private int notaFinal;
// Use this for initialization
void Start() {
idTema = PlayerPrefs.GetInt("idTema");
idPergunta = 0;
questoes = perguntas.Length;
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
public void resposta(string alternativa)
{
if (alternativa == "A")
{
if (alternativaA[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "B")
{
if (alternativaB[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "C")
{
if (alternativaC[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
else if (alternativa == "D")
{
if (alternativaD[idPergunta] == corretas[idPergunta])
{
acertos += 1;
}
}
proximaPergunta();
}
void proximaPergunta()
{
idPergunta += 1;
if (idPergunta <= (questoes-1))
{
pergunta.text = perguntas[idPergunta];
respostaA.text = alternativaA[idPergunta];
respostaB.text = alternativaB[idPergunta];
respostaC.text = alternativaC[idPergunta];
respostaD.text = alternativaD[idPergunta];
infoRespostas.text = "Respondendo " + (idPergunta + 1).ToString() + " de " + questoes.ToString() + " perguntas.";
}
else
{
media = 10 * (acertos / questoes);
notaFinal = Mathf.RoundToInt(media);
if (notaFinal > PlayerPrefs.GetInt("notaFinal"+idTema.ToString()))
{
PlayerPrefs.SetInt("notaFinal"+idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertos"+idTema.ToString(), (int) acertos);
}
PlayerPrefs.SetInt("notaFinalTemp" + idTema.ToString(), notaFinal);
PlayerPrefs.SetInt("acertosTemp" + idTema.ToString(), (int)acertos);
Application.LoadLevel("notaFinal");
}
}
private void Perguntas(Button button)
{
StartCoroutine(PerguntasRoutine(button));
}
private IEnumerator PerguntasRoutine(Button button)
{
yield return new WaitForSeconds(m_waitTime);
proximaPergunta();
}
}
O CÓDIGO DELE:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(AudioSource))]
public class GameManager : MonoBehaviour
{
[SerializeField] private AudioClip m_correctSound = null;
[SerializeField] private AudioClip m_incorrectSound = null;
[SerializeField] private Color m_correctColor = Color.black;
[SerializeField] private Color m_incorrectColor = Color.black;
[SerializeField] private float m_waitTime = 0.0f;
private QuizDB m_quizDB = null;
private QuizUI m_quizUI = null;
private AudioSource m_audioSource = null;
private void Start()
{
m_quizDB = GameObject.FindObjectOfType<QuizDB>();
m_quizUI = GameObject.FindObjectOfType<QuizUI>();
m_audioSource = GetComponent<AudioSource>();
NextQuestion();
}
private void NextQuestion()
{
m_quizUI.Construtc(m_quizDB.GetRandom() , GiveAnswer);
}
private void GiveAnswer(OptionButton optionButton)
{
StartCoroutine( GiveAnswerRoutine(optionButton) );
}
private IEnumerator GiveAnswerRoutine(OptionButton optionButton)
{
if (m_audioSource.isPlaying)
m_audioSource.Stop();
m_audioSource.clip = optionButton.Option.correct ? m_correctSound : m_incorrectSound;
optionButton.SetColor( optionButton.Option.correct ? m_correctColor : m_incorrectColor );
m_audioSource.Play();
yield return new WaitForSeconds( m_waitTime );
NextQuestion();
}
}
Akuma97- Membro
- PONTOS : 2130
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [DÚVIDA] Script teleporte, como esperar determinados segundos para teleportar
» Como Fazer quiz com pergunta Aletórias no Unity-5
» Como usar uma coroutine para esperar um objeto se movimentar?
» -- [ COMO FAÇO PARA DESATIVAR UM UI DEPOIS DE +/-, 3 SEGUNDOS ? ] --
» Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
» Como Fazer quiz com pergunta Aletórias no Unity-5
» Como usar uma coroutine para esperar um objeto se movimentar?
» -- [ COMO FAÇO PARA DESATIVAR UM UI DEPOIS DE +/-, 3 SEGUNDOS ? ] --
» Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos