/// <summary> /// Flujo del juego /// </summary> private void GameLoop() { switch (gameLoop) { case 0: //Crea las preguntas y las muestra. La puntuación se pone a 0/0 point.enabled = true; point.text = "0 / 0"; auController.ChangeAudio(2); CreateQuiz(); break; case 1: //Animación de transición IN //LabelControllerIn(true); auController.ChangeAudio(1); if (fase == 0) { StartCoroutine(LabelPanelCorountine(2, 8)); } else if (fase == 1) { StartCoroutine(LabelPanelCorountine(5, 10)); } else { StartCoroutine(LabelPanelCorountine(8, 10)); } break; case 2: //Texto de historia ANTES de la PREGUNTA MORAL if (points[0] >= 4) { Debug.Log("Has aprobado"); //Si ha aprobado, se va a la pregunta moral gameLoop++; } else { Debug.Log("Has suspendido"); resM[fase] = -2; //Si ha suspendido se salta la pregunta y se toma numQuiz = 0; //la respuesta MALA gameLoop = 5; } Invoke(nameof(GameLoop), 5f); points[0] = 0; points[1] = 0; break; case 3: //Se muestra la pregunta moral y transition OUT //LabelControllerIn(false); StartCoroutine(labelController(false)); auController.ChangeAudio(2); CreateQuizM(); break; case 4: //Se ejecuta una vez ya se ha hecho el CheckQuizM //Transition IN //LabelControllerIn(true); auController.ChangeAudio(1); if (fase == 0) { StartCoroutine(LabelPanelCorountine(3, 5)); } else if (fase == 1) { StartCoroutine(LabelPanelCorountine(6, 10)); } else { StartCoroutine(LabelPanelCorountine(9, 10)); } StartCoroutine(labelController(true)); gameLoop++; Invoke(nameof(GameLoop), 1.5f); Debug.Log("gameLoop 4"); break; case 5: //Se comprueba la fase. if (fase++ == 2) //Si es la última... { gameLoop = 10; //labelTransAnim.SetTrigger("TransitionIn"); //Pasamos al gameLoop 10 Invoke(nameof(GameLoop), 1.5f); } else //Si no es la última... { //LabelControllerIn(true); //Activamos panel para la historia Debug.Log("Has ido al siguiente fase"); gameLoop++; Invoke(nameof(GameLoop), 5f); } break; case 6: //Se resetea el gameLoop, se desactiva el panel para la historia y Transition OUT switch (fase + 1) { case 1: auController.ChangeAudio(2); StartCoroutine(LabelPanelCorountine(4, 8)); break; case 2: StartCoroutine(LabelPanelCorountine(7, 8)); auController.ChangeAudio(2); break; } break; case 10: FinalCheck(); break; } }