Problem:
Hi, I’m working on my Text101 game and before keep expanding the story I wanted to check if everything was working fine. I discovered that when I in a state with 3 options I press a “not theoretically supposed to work in that moment” option, it works.
Example:
State A, options are 1, 2 and 3.
State B, options are 4, 5 and 6.
I am in state A, I press 1, it works as expected.
I am in state A, I press 6, it should not do anything but works as if I were in state B.
Code:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class TextController : MonoBehaviour {
public Text text;
private enum States {intro, dormitorio, balcon, armario, pasillo, no_pasillo, muerte_pasillo, baño, salon, escalera, muerte_escalera, socorro, azotea_subir, azotea_armario, azotea_puerta};
private States currentState;
private bool rebequita;
// Use this for initialization
void Start () {
currentState = States.intro;
rebequita = false;
text.text = "Pulsa cualquier tecla para empezar el juego.";
}
// Update is called once per frame
void Update () {
if (Input.anyKeyDown){
state_intro();
if (currentState == States.balcon){
state_balcon();
}else if (currentState == States.dormitorio){
state_dormitorio();
} else if (currentState == States.armario){
state_armario();
} else if (currentState == States.pasillo){
state_pasillo();
} else if (currentState == States.no_pasillo){
state_noPasillo();
}
}
}
void state_intro () {
text.text = "Eric y tu llegais a casa despues de una larga jornada. " +
"Mientras ves un programa de humor en el televisor ves como Eric se levanta sin decir nada y va al baño, y al cabo " +
"de un momento escuchas como empieza a hablar solo. Sales del salon y vas a su encuentro pensando que te dice algo, " +
"pero no hablaba contigo, sino que con el espejo. Miras al espejo y ves como la figura del espejo, un ser con aspecto " +
"demoniaco te mira, vuelve la mirada a Eric y grita '¡ATRAPALA!'. Acto seguido, ves como Eric cae al suelo al tiempo " +
"que dice 'escondete y huye' mientras sus manos crecen y sus dedos se vuelven mas largos y finos, ideal para hacer " +
"cosquillas durante horas. Temiendo por tu vida, sales corriendo del baño y te escondes en el interior de un mueble en" +
"una habitacion cercana durante unos minutos. El tiempo se hacia eterno mientras escuchabas los pasos del monstruo en " +
"el que Eric se acaba de convertir. Cuando entra a la misma habitacion en la que estas tu el pulso se te acelera, pero " +
"reunes el valor necesario para mirar por una rendija y ves que ese ya no es el novio con el que salias, sino " +
"Risallon, el demonio de las cosquillas en el cuerpo de Eric. Por suerte sale de la habitacion sin haberte visto, " +
"es hora de escapar.\n\n" +
"Opciones: (B) Ir al balcon (A) Revisar el armario (P) Ir al pasillo";
if (Input.GetKeyDown(KeyCode.B)){
currentState = States.balcon;
} else if (Input.GetKeyDown(KeyCode.A)){
currentState = States.armario;
} else if ((Input.GetKeyDown(KeyCode.P)) && rebequita == true){
currentState = States.pasillo;
} else if ((Input.GetKeyDown(KeyCode.P)) && rebequita == false){
currentState = States.no_pasillo;
}
}
void state_dormitorio (){
text.text = "Has vuelto al dormitorio.\n\n" +
"Opciones: (B) Ir al balcon (A) Revisar el armario (P) Ir al pasillo";
}
void state_balcon (){
text.text = "La puerta esta bloqueada, Eric debia haberla arreglado ya... capullo.\n\n" +
"Opciones: (D) Dormitorio";
}
void state_armario (){
text.text = "Hay una rebequita, vas a cogerla por si acaso que es invierno"+
"Opciones: (D) Dormitorio";
rebequita = true;
}
void state_pasillo (){
text.text = "No hay demonios a la vista, ¿a donde quieres ir?\n\n";
}
void state_noPasillo (){
text.text = "Es invierno y hace frio, no puedo huir asi...\n\n";
}
}