Aprovecha el precio especial.

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15d

15h

33m

43s

1

Añadir una funcionalidad de pausa en Unity

Creo que no fue explicado en este curso y tras investigar un poco, resulta que no es algo tan difícil de hacer.
Si bien aparentemente hay diferentes formas de hacerlo, me resultó demasiado sencilla esta forma que les compartiré:

  • Colocan el siguiente código en donde prefieran, yo lo puse en el MenuManager pero entiendo que puede colocarse en otro código relacionado como el GameManager
publicvoidPauseGame(){
        Time.timeScale = 0;
    }
publicvoidResumeGame(){
        Time.timeScale = 1;
    }

  • En el public enum del GameState que esta en el GameManager, añaden pause
public enumGameState
{
    menu,
    inGame,
    pause,
    gameOver
}

  • En el update del GameManager, aquí hice para que el botón de pausa sea Q, pero se puede cambiar a su gusto. También tener en cuenta que si pusieron los void de ResumeGame y PauseGame en otro lugar, eso también deberán tenerlo en cuenta en sus implementaciones.
if (Input.GetKeyDown(KeyCode.Q) &&  currentGameState == GameState.inGame)
        {
            MenuManager.sharedInstance.PauseGame();
            currentGameState = GameState.pause;
        }
elseif (Input.GetKeyDown(KeyCode.Q) && currentGameState == GameState.pause)
        {
            MenuManager.sharedInstance.ResumeGame();
            currentGameState = GameState.inGame;
        }

Y listo 😄 ¿No es tan difícil verdad? Pueden profundizar más agregando un canvas a la pausa, e incluso experimentar funcionalidades para que el tiempo vaya más lento o sólo se mueva un objeto en el juego. Es muy interesante todo lo que se puede lograr con Unity

Escribe tu comentario
+ 2