¡Hola a todos!
Últimamente estoy dudando de casi todo lo que programo en Unity a la hora de ver si es lo correcto en cuanto a programación, ya que estoy programando cositas pero al final no sabes si lo que haces, aunque funcione, lo estas haciendo bien.
Me llega el caso con el tema del Update, no me cabe en la cabeza el concepto de que a cada Frame se realice la acción que hay dentro del Update y que se repita una y otra y otra vez. Puede que sea una duda de programación muy simple, y creo que ya no la debería de tener.
Estoy programando un Game Manager para un prototipo de juego, en el que utilizo un Enum para definir los diferentes estados del juego, y tengo un Switch metido en el Update donde los casos son los del Enum.
La duda que tengo es el hecho de utilizar un switch en el Update y si esto es optimo y se hace así, pienso que a cada Frame se repite una y otra vez todo, aunque no me haga falta. Por ejemplo:
Tengo un canvas que cuando el estado es Game Over se activa y se muestra, pero claro, una vez activado y mostrado ya no me haría falta que entrara más en en ese switch, sin embargo sigue haciendo la linea de ShowMenu (GameOver, true), es decir que me sigue mostrando una y otra vez el menú a cada Frame hasta que algo cambie.
¿Qué me recomendáis que haga? ¿Me estoy volviendo paranóico? ¿Deberia quitar el Switch y el enum y utilizar lo mínimo el update?
void Update () {
switch (gm)
{
case GameState.Start:
break;
case GameState.inGame:
if (Input.GetKeyDown (KeyCode.Escape) && !pause)
{
pause = true;
ShowMenu (Menu,true);
Time.timeScale = 0;
}
else if(Input.GetKeyDown (KeyCode.Escape) && pause)
{
pause = false;
ShowMenu(Menu,false);
Time.timeScale = 1;
}
break;
case GameState.GameOver:
ShowMenu (GameOver, true);
Time.timeScale = 0;
break;
}
}