SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
[DUVIDA] UV MAPPING EM VÁRIOS OBJETOS - BLENDER
[DUVIDA SIMPLES]
Projeto Game de Terror
[DÚVIDA] Modelo do Sketchup não importa corretamente
probleminha ao usar o Platform Effector2d
Criar game multi player unity 3d
[PROJETO] A ULTIMA CASA DA RUA
Volleyguys - jogo de vôlei
The freddy krueger's pie (Game)
Novo Trailer do jogo 13º Andar
[TUTORIAL] Banco de dados || MySQL
Touch para 2 Jogadores
Set Height do terreno
Como ativar som ao passar por cima de um objeto?
XML, suporte e utilização.
Travar animação
[DIVULGAÇÃO DE AULA] Como criar jogos sem saber programação
Porque meu objeto não está sendo ativado? unity 2D
[RESOLVIDO] Como fazer o canvas ficar atrás do personagem? Unity 2D
[TUTORIAL] Controlador em Primeira Pessoa "compacto" FPS
Tem como modificar a textura em tempo real?
TEXTO DO BUTTON
ALTERAR A VELOCIDADE APENAS DE UMA ANIMAÇÃO VIA SCRIPT
Valor de App de Realidade Aumentada.
Como Fasso Para O HingeJoint Virar em Duas Direçoes?
Pegar objeto tocado em dispositivo mobile
Árvores sem billboard
[TUTORIAL] Criar Analógico Virtual UI Para Mobile.
Arquivos com Casa, arvores, Gramas, Objetos3d Etc...
distancia
Unity 2019.1.1 não entra em Modo Play
Como fazer um sistema de conetar objetos 3d ao passar proximo de um Trigger?
Como fazer pro meu tiro matar o inimigo?
Fazer personagem descer uma tirolesa
Duvida script de loading com controle
Como implementar Gyroscope no FPSController ?
Bug de Iluminação Unity 2019
Não consigo dar dano nem destruir um objeto
SCRIPT DE MOVIMENTAÇÃO E CÂMERA
[PEDIDO DE TUTORIAL] Schultz fazer uma série *jogo de corrida*
[FAZER TUTORIAL] Como faço para clicar em um objeto e visualizar, girar...
Como finalizar a textura no blender
É possivel detectar colisão de um objeto filho pelo objeto pai?
Como atrasar uma animação Unity 2D
AJUDA COM SCRIPT DE LOAD DE CENA
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
[RESOLVIDO] Como mudar a cor do Text?
[PEDIDOS DE TUTORIAIS]
saber se os objetos colidiram
navmeshagent Duvida sobre a distancia percorrida
[TUTORIAL] Mover objetos 2D e conectar em lugares específicos
Balão de Conversação
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
Vale apena colocar esse Asset na Asset Store?
Como faço para que mostre algo que vai instanciar?
TRANSFORM DA POSIÇÃO NÃO SEGUE A ANIMAÇÃO
[TUTORIAL] Sistema de Lanterna com Pilhas
[TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
UNITY, TRANSFORM.TRANSLATE ATRAVESSA PAREDES
Como Fazer Agregação via script do Unity?
( Ajuda) gráficos longe ruim
Verificar se objeto ja existe em um Lista
Fog of War
Scope Script
Animar um Número de Vezes
AJUDA COM MUDANÇA DE CENA
Porque meu aúdio não funciona na colisao do player com o objeto?
[RESOLVIDO] UNITY OBJETOS COM MESMO SCRIPT DE FORMA INDEPENDENTE
Comunicação entre scripts
[TUTORIAL] Script de pulo para jogos 3D em geral (Unity - C#)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Esse erro de código é da Unity ou da versão do Script?
Game Take All
PRESSIONAR BOTÃO TOUCH NO ANDROID SERÁ O MESMO QUE PRESSIONAR UMA TECLA DO TECLADO REAL
PROBLEMAS AO DAR BUILD
PRESSIONAR BOTÃO TOUCH NO ANDROID SERÁ O MESMO QUE PRESSIONAR UMA TECLA DO TECLADO FÍSICO
Duvida seleção de personagemsn
Como faço para distanciar um objeto do outro pelo script?
[Em Desenvolvimento] Battles of Worlds
Ajuda com Ragdoll (Ta muito bugado)!!!
AJUDA - TUTORIAL Unity 2017 - Mover e rotacionar para a POSIÇÃO do MOUSE
Touch movendo objeto através duma Layer
[RESOLVIDO] Tentando fazer interação com botão do Mouse(1) nos slots!
[TUTORIAL] Unity 2019 - Lanterna e pilhas, com UI
Mecânica estilingue Angry Birds.
Sobre o StreamLabs OBS e o baixo FPS
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
Loja de Roupa estilo GTA V
duvida em desenho
[TUTORIAL] GameObject.Find ( achar objetos pelo nome )
[RESOLVIDO] Como faço pro inimigo dar dano no personagem (jogo 2D de plataforma)
Rotação em um eixo
MAIS DE UMA ANIMAÇÃO NO PLAYER
[RESOLVIDO] Ajuda com rotação local
Instalar nova versão Unity 2019
[RESOLVIDO] Solução Unity 2019 erro Text Mesh Pro
Como faço para meu inimigo se movimentar da esquerda para direita estilo super mário?
[RESOLVIDO] AO ABRIR NOVAMENTE A CENA OS PARTICLESYSTEMS NÃO FUNCIONAM
Resolução para Android no Unity?
Hoje à(s) 11:06 am
Ontem à(s) 10:26 pm
Ontem à(s) 9:45 pm
Ontem à(s) 2:28 pm
Ontem à(s) 2:27 pm
Ontem à(s) 1:59 pm
Ontem à(s) 11:26 am
Ontem à(s) 9:24 am
Sex Maio 17, 2019 6:34 pm
Sex Maio 17, 2019 6:30 pm
Sex Maio 17, 2019 10:30 am
Qui Maio 16, 2019 8:14 pm
Qui Maio 16, 2019 8:10 pm
Qui Maio 16, 2019 6:57 pm
Qui Maio 16, 2019 6:46 pm
Qui Maio 16, 2019 5:31 pm
Qui Maio 16, 2019 4:08 pm
Qui Maio 16, 2019 3:24 pm
Qui Maio 16, 2019 12:14 pm
Qui Maio 16, 2019 9:30 am
Qua Maio 15, 2019 4:13 pm
Qua Maio 15, 2019 3:03 pm
Qua Maio 15, 2019 10:17 am
Qua Maio 15, 2019 12:45 am
Seg Maio 13, 2019 7:34 pm
Seg Maio 13, 2019 3:06 pm
Dom Maio 12, 2019 10:10 pm
Dom Maio 12, 2019 7:52 pm
Dom Maio 12, 2019 7:13 pm
Dom Maio 12, 2019 6:38 pm
Dom Maio 12, 2019 1:27 pm
Dom Maio 12, 2019 10:57 am
Dom Maio 12, 2019 2:02 am
Sab Maio 11, 2019 2:03 pm
Sab Maio 11, 2019 1:12 pm
Sab Maio 11, 2019 12:58 pm
Sab Maio 11, 2019 9:06 am
Sex Maio 10, 2019 6:46 pm
Sex Maio 10, 2019 1:34 pm
Sex Maio 10, 2019 12:39 pm
Sex Maio 10, 2019 9:47 am
Qui Maio 09, 2019 8:18 pm
Qui Maio 09, 2019 7:41 pm
Qui Maio 09, 2019 11:44 am
Qui Maio 09, 2019 10:38 am
Qua Maio 08, 2019 10:04 pm
Qua Maio 08, 2019 9:49 pm
Qua Maio 08, 2019 1:56 pm
Qua Maio 08, 2019 12:55 pm
Qua Maio 08, 2019 9:33 am
Qua Maio 08, 2019 9:23 am
Qua Maio 08, 2019 8:52 am
Qua Maio 08, 2019 7:24 am
Ter Maio 07, 2019 11:00 pm
Ter Maio 07, 2019 6:46 pm
Ter Maio 07, 2019 5:06 pm
Ter Maio 07, 2019 3:23 pm
Ter Maio 07, 2019 12:50 am
Seg Maio 06, 2019 11:58 pm
Seg Maio 06, 2019 9:27 pm
Seg Maio 06, 2019 2:06 pm
Seg Maio 06, 2019 1:52 pm
Seg Maio 06, 2019 9:43 am
Dom Maio 05, 2019 9:41 pm
Dom Maio 05, 2019 9:00 pm
Dom Maio 05, 2019 7:41 pm
Dom Maio 05, 2019 10:53 am
Sab Maio 04, 2019 4:30 pm
Sab Maio 04, 2019 1:33 pm
Sex Maio 03, 2019 8:41 pm
Sex Maio 03, 2019 4:59 pm
Sex Maio 03, 2019 4:34 pm
Sex Maio 03, 2019 3:40 pm
Sex Maio 03, 2019 4:59 am
Qui Maio 02, 2019 11:23 pm
Qui Maio 02, 2019 8:41 pm
Qui Maio 02, 2019 8:13 pm
Qui Maio 02, 2019 7:23 pm
Qui Maio 02, 2019 6:52 pm
Qui Maio 02, 2019 6:11 pm
Qui Maio 02, 2019 1:52 pm
Qua Maio 01, 2019 9:33 pm
Qua Maio 01, 2019 8:47 pm
Qua Maio 01, 2019 6:29 pm
Ter Abr 30, 2019 2:22 am
Seg Abr 29, 2019 10:16 pm
Seg Abr 29, 2019 10:12 pm
Seg Abr 29, 2019 7:56 pm
Seg Abr 29, 2019 2:46 pm
Sab Abr 27, 2019 7:20 pm
Sab Abr 27, 2019 3:38 pm
Sab Abr 27, 2019 3:00 am
Sab Abr 27, 2019 12:01 am
Sex Abr 26, 2019 8:08 pm
Sex Abr 26, 2019 7:40 pm
Sex Abr 26, 2019 7:34 pm
Qui Abr 25, 2019 10:06 pm
Qui Abr 25, 2019 9:32 pm
Qui Abr 25, 2019 7:33 pm
osiasbezerra
rafaelllsd
thales.ulisses
DARKcrons
nando07
artplayer
thales.ulisses
Daniel Pires da Silva
thales.ulisses
thales.ulisses
Khrys
GabriG07
SuperGamer
darkrj
Tegh
MarcioGSouza
igorsp3
NKKF
darkrj
gabrieldeelay
glauco
lTHINGl
artplayer
numb123
williangamesbr4021
Marcelo Santos
RuyVictor
Édipo
Callyde Jr
artplayer
ronigleydson
henriquegames501
darkrj
SergioDB
loganout
loganout
MarcosSchultz
NKKF
JohnRambo
JohnRambo
lidog
diegopds
LucasRangel
darkrj
Diego Felix
BrazaTattoo
dkrazor
Gabryellx007
rafaelholanda
UesleiUsl
eljkb
artplayer
kraulim
glauco
NKKF
osiasbezerra
robertodf
guimaraf
ronigleydson
osiasbezerra
deikson
numb123
Valakinhas
NKKF
osiasbezerra
BrazaTattoo
dstaroski
diegodiego01
Callyde Jr
jogador432
glauco
Tegh
Tegh
richardfalcos
BrazaTattoo
richardfalcos
Tonny3DM
NKKF
Dom3000
joveem
daniel123163
edvanmelo
BanaNiao
MarcosSchultz
rafaelllsd
lesgoy
MarcosSchultz
Callyde Jr
diegopds
MarcosSchultz
darkrj
MarcosSchultz
Callyde Jr
Nowsfeky
Callyde Jr
Callyde Jr
darkrj
wagnercaragua
NKKF

Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Ir em baixo

DÚVIDA Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Sex Mar 15, 2019 2:49 pm

O código é este:

Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class responder : MonoBehaviour {



    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;
    private object usedValues;

    // 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");


        }


    

    }




}

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por MarcosSchultz em Sex Mar 15, 2019 5:09 pm

Isso é um tutorial? Uma dúvida?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61770
REPUTAÇÃO : 2243
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D Aad8pUi

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Sex Mar 15, 2019 11:27 pm

@MarcosSchultz escreveu:Isso é um tutorial? Uma dúvida?

Está em "Duvidas em geral", então sim, é uma duvida. Não sei como fazer isto...

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por MayLeone em Dom Mar 17, 2019 3:03 pm

Do jeito que está, fica dificil implementar uma aleatoriedade, recomendo mudar a arquitetura do código.
Dê uma olhada nesse tutorial, talvez possa te ajudar: http://compilemosfacil.blogspot.com/2018/01/desenvolvendo-um-jogo-de-quiz-com.html
MayLeone
MayLeone
ProgramadorMaster

Feminino PONTOS : 911
REPUTAÇÃO : 244
Áreas de atuação : Unity, C++/C#, HTML, CSS, JS, jQuery, PHP, MySQL, XML, Blender
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D Aad8pUi

Ver perfil do usuário http://compilemosfacil.blogspot.com.br

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Dom Mar 17, 2019 3:42 pm

pelo jeito, vc precisa aleatorizar a pergunta, porem, não poderia repetir, ao meu entender no código o idpergunta é oque faz cada questão.

se utilizar um idpergunta = random.range(0,200); aleatorizaria de 0 a 200, porem a mesma pergunta poderia aparecer diversas vezes.

oque poderia ser feito é:
criar um grupo de bool - public bool[] Respondidas.
assim que uma bool for respondida deixar true.
depois para trocar as perguntas
idpergunta = random.range(0,perguntas.lenght); // isto pega o max de perguntas possíveis
depois disso vc checa pra ver se já foi respondida
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função

}

isto sim seria aleatório a posição das perguntas, e elas não se repetiriam.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 4:13 pm

@luiz12345 escreveu:pelo jeito, vc precisa aleatorizar a pergunta, porem, não poderia repetir, ao meu entender no código o idpergunta é oque faz cada questão.

se utilizar um idpergunta = random.range(0,200); aleatorizaria de 0 a 200, porem a mesma pergunta poderia aparecer diversas vezes.

oque poderia ser feito é:
criar um grupo de bool - public bool[] Respondidas.
assim que uma bool for respondida deixar true.
depois para trocar as perguntas
idpergunta = random.range(0,perguntas.lenght); // isto pega o max de perguntas possíveis
depois disso vc checa pra ver se já foi respondida
if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função

}

isto sim seria aleatório a posição das perguntas, e elas não se repetiriam.


Fiz assim:

Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class responder : MonoBehaviour {

    private int idTema;

    public bool[] Respondidas.

    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 = random.range(0, perguntas.lenght); // isto pega o max de perguntas possíveis
        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");
        }
    }

    if(Respondidas[idpergunta] == true){
proximaPergunta();
return; // para retornar a função
}

}


Porém deu este erro: "Unedxpected symbol "public" in class, struct, or interface member declaration". Aparentemente foi no "public Text pergunta;"

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 4:24 pm

Eu consertei algumas coisas no código, mas ainda da erro (principalmente no "if").

public bool[] Respondidas;

idPergunta = Random.Range (0, perguntas.Lenght); // isto pega o max de perguntas possíveis

if(Respondidas[idPergunta] == true){
proximaPergunta();
return; // para retornar a função
}

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Dom Mar 17, 2019 5:50 pm

se o erro for quando da o play, deve ser porque o numero de bool respondidas n é igual ao numero de perguntas. tipo existem 20 perguntas mais n colocou nenhuma bool.

se o erro for no código deve ser o local onde esta chamando este if(), ou então na parte onde ele invoca a própria void.

um jeito seria em vez de void, colocar no update, pois é necessário checar varias vezes, pois se existirem 20 perguntas, e ele já respondeu 19, vai ter uma chance de 5% do script pegar a pergunta restante, ou seja talvez ele faça essa verificação mais de 50x

para colocar no update:
1-crie uma bool normal com um nome tipo 

proximaPergunta.
2-na void update, cheque se ela esta true. if(proximaPergunta){}
3-remova a void proximaPergunta, e coloque ela inteira dentro do if que você criou na update.
4- no final do if() com todos os parâmetros que antes estava na void, adicione: proximaPergunta = false;
5-adicione o que eu havia dito antes.

idPergunta = Random.Range (0, perguntas.Lenght); // lembre-se de add isto na parte inicial do if

if(Respondidas[idPergunta] == true){ // note que n é necessário deixar true o proximaPergunta.
return; 
}
aqui em baixo o código da void.


luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:23 pm

Eu coloquei 10 perguntas em cada fase, mas algumas eu colocarei mais perguntas e outras menos. O erro foi no código não na hora do play.

Eu coloquei o if no void proximaPergunta e funcionou. Ficou aleatório. Mas quando clica, a próxima pergunta não vai, da erro.

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:27 pm

e outro erro foi o "Lenght" que na verdade é "Length", mas já consertei.

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Dom Mar 17, 2019 6:30 pm

Ficou assim:

Código:
void proximaPergunta()
    {
        idPergunta += 1;

        if (Respondidas[idPergunta] == true)
        {
            proximaPergunta();
            return; // para retornar a função
        }

        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");
        }
    }

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 12:08 pm

Diz que o erro é em         if (Respondidas[idPergunta] == true)

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 6:30 pm

Apaguei está parte do código (abaixo) e funcionou. Por enquanto as perguntas não estão repetidas e quando clica ela vai pra próxima pergunta.

Código:
 if (Respondidas[idPergunta] == true)[size=14][/size]        {[size=14][/size]            proximaPergunta();[size=14][/size]            return; // para retornar a função[size=14][/size]        }




Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class responder : MonoBehaviour {

    private int idTema;

    public bool[] Respondidas;


    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 = Random.Range(0, perguntas.Length); // isto pega o max de perguntas possíveis
        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");
        }
    }



}

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 6:32 pm

Só que na próxima pergunta não fica aleatório...

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 6:43 pm

tenta deixar aquela parte e envia aqui o erro que da, e diz se é durante o jogo(quando da play na cena), ou se ele da o erro todo o tempo.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 7:32 pm

@luiz12345 escreveu:tenta deixar aquela parte e envia aqui o erro que da, e diz se é durante o jogo(quando da play na cena), ou se ele da o erro todo o tempo.

Dá erro quando clico na pergunta (ele não vai pra proxima pergunta) e fala isso "IndexOutofRangeException: Array index is out of range". O erro diz que é no  if (Respondidas[idPergunta]);

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 8:06 pm

me disseram pra usar este código (abaixo), mas não sei onde colocar ele:

Código:
Debug.Log("The value is " + idPergunta.ToString());

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:35 pm

o numero de bools no inspector é o mesmo que o numero de perguntas possíveis?
quando você criou o Respondidas[] foi adicionado no inspector uma área de bool, porem você antes precisa selecionar a quantidade.

caso não queria fazer isto, tenta adicionar isto antes do if():
Respondidas = new bool[perguntas.Length];
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:39 pm

opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Seg Mar 18, 2019 8:39 pm

@luiz12345 escreveu:opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
Void Start* to meio enrolado ;-;
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 9:53 pm

@luiz12345 escreveu:
@luiz12345 escreveu:opa, oque eu disse antes está errado pois como isto será checado de novo, ira resetar todos os valores, tendo efeito nulo o if(). Ou seja, não coloque antes do if(), coloque em primeiro na void update.
Void Start* to meio enrolado ;-;

Agora mano, funcionou. Valeu rsrsrs
Ficou assim:

Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class responder : MonoBehaviour {

    private int idTema;

    public bool[] Respondidas;


    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 = Random.Range(0, perguntas.Length); // isto pega o max de perguntas possíveis
        questoes = perguntas.Length;
        Respondidas = new bool[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;
        Debug.Log("The value is " + idPergunta.ToString());

        if (Respondidas[idPergunta])
        {
            proximaPergunta();
            return; // para retornar a função
        }

        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");
        }
    }



}

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Seg Mar 18, 2019 11:26 pm

Porém testando aqui deu erro de novo. Eu respondo algumas perguntas e depois da o mesmo "IndexOutofRangeException: Array index is out of range". O erro diz que é no  if (Respondidas[idPergunta]);

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Ter Mar 19, 2019 1:14 am

tente substituir o:
Respondidas = new bool[perguntas.Length];

Por:

Respondidas = new bool[perguntas.Length + 1];


isso buga porque em certas parte ele conta o zero, em outras não.
se der mais erros avise
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 10:56 am

@luiz12345 escreveu:tente substituir o:
Respondidas = new bool[perguntas.Length];

Por:

Respondidas = new bool[perguntas.Length + 1];


isso buga porque em certas parte ele conta o zero, em outras não.
se der mais erros avise

Isso fez com que ele respondesse 1 ou 2 perguntas e depois finalizasse o questionário, sendo que são 10 perguntas.

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 11:12 am

Tentei postar uma print, mas o fórum não permite. Então vou tentar explicar...
Quando eu clicava na pergunta aparecia isto "The value is 8 UnityEngine.Debug:Log(Object)responder:proximaPergunta()"; quando chegava no "The value is 9", ele dava erro "IndexOutofRangeException: Array index is out of range".


Então eu removi o  "Debug.Log("The value is " + idPergunta.ToString());" e funcionou normalmente. Porém, quando chegava na ultima pergunta ele não ia para a nota final, ele dava de novo o erro "IndexOutofRangeException: Array index is out of range".

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 11:14 am

Ele nem começa do começo. Tem horas que ele já vai pra ultima pergunta (são 10 perguntas)...

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por luiz12345 em Ter Mar 19, 2019 12:34 pm

se for um sistema aleatório então ele pode tanto pegar a primeira, como a quinta, como a ultima pergunta, pois é aleatório, porem se for um sistema onde a primeira e a ultima não são aleatória ai já precisa de mais programação.
Quanto ao erro, eu não entendi muito bem, oque você poderia fazer é criar um outro tópico informando sobre este erro para que mais pessoas possam ajuda-lo.
luiz12345
luiz12345
MembroAvançado

Masculino PONTOS : 1242
REPUTAÇÃO : 14
Idade : 18
Áreas de atuação : Programação, Modelagem 3D, Criação De Jogos Digitais.
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário https://discord.gg/8b8bGyY

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D

Mensagem por Akuma97 em Ter Mar 19, 2019 1:50 pm

@luiz12345 escreveu:se for um sistema aleatório então ele pode tanto pegar a primeira, como a quinta, como a ultima pergunta, pois é aleatório, porem se for um sistema onde a primeira e a ultima não são aleatória ai já precisa de mais programação.
Quanto ao erro, eu não entendi muito bem, oque você poderia fazer é criar um outro tópico informando sobre este erro para que mais pessoas possam ajuda-lo.

Se quiser te mando o jogo pra você ver e tentar fazer ficar aleatório.

Akuma97
Membro
Membro

PONTOS : 104
REPUTAÇÃO : 1
Respeito as regras : Como fazer as perguntas ficarem aleatorias em jogo quiz - Unity 2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum