Como pausar um jogo na Unity? – Interface

Criando uma interface para nosso comando de pause…

Antes de começar a adicionar uma interface ao nosso comando de pausar o jogo, é importante lembrar de que este tutorial é a segunda parte do tutorial “Como pausar um jogo na Unity?” e para acompanhar desde o começo e ter seus scripts em ordem, o link para o primeiro post está logo abaixo.

Como pausar um jogo na Unity? – Teclado

Descubra como pausar um jogo na Unity utilizando apenas um botão de seu teclado!

Agora vamos ao que interessa!

Em breve versão em vídeo deste tutorial.

Como essa parte do tutorial acompanha partes visuais de interface, para que seja possível visualizar melhor o que está acontecendo, uma imagem do kenney foi adicionada ao fundo representando um gameplay. E com isso nosso jogo passa a ser assim:

Imagem 1

Agora, antes de criar toda a nossa interface, vamos fazer algumas alterações em nosso código para que seja possível integrá-lo a um painel. Diferente do que você deve estar imaginando, não vamos adicionar muitas coisas ao nosso script e as alterações vão se concentrar em criar 3 linhas novas. Uma criando uma variável como referência pública ao nosso painel por meio de um GameObject, e as outras duas vão comandar a visibilidade do nosso painel através do comando SetActive(). Dessa forma, atualizando nossas descrições, “quando o jogo estiver normal e a tecla P foi pressionada, o jogo será pausado E A TELA DE PAUSE IRÁ APARECER e “quando o jogo já estiver pausado e a tecla P for pressionada, o jogo voltará ao normal E A TELA DE PAUSE IRÁ SUMIR, resultando então no seguinte código:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PauseMenu : MonoBehaviour {
    
    public GameObject painel_de_pause;

    void Start() {
         
    }
 
    void Update() {
        if (Input.GetKeyDown(KeyCode.P)) {
            PausarJogo();
        }
    }
 
    void PausarJogo() {
        if (Time.timeScale == 0) {
            Time.timeScale = 1;
            painel_de_pause.SetActive(false);
        } else if (Time.timeScale == 1) {
            Time.timeScale = 0;
            painel_de_pause.SetActive(true);
        }
    }
 
}

Com o código pronto e o script funcionando, tudo o que devemos fazer agora é focar na criação de nossa interface. Com isso, para criar um painel juntamente com um canvas, vá na Hierarquia e aperte com o botão direito do mouse. Nele, siga UI > Panel como na Imagem 2, e em seguida seu painel será criado e aparecerá na Hierarquia como na Imagem 3 e na tela de jogo como na Imagem 4.

Imagem 2
Imagem 3
Imagem 4

Então com nosso painel criado, nosso próximo passo passa a ser adicionar um texto a ele e também falar para nosso script PauseMenu() que este painel que criamos é o qual deve aparecer e desaparecer quando o jogo for pausado. Assim, para criar um texto é necessário que em nosso painel (que está dentro do canvas) se clique com o botão direito e siga UI > Text assim como na Imagem 5. Ao realizar essa operação, seu canvas deve estar como na Imagem 6 e sua tela de jogo como na Imagem 7.

Imagem 5

Imagem 6

Imagem 7

Com isso, perceba que ao selecionar seu texto, com nome Text na Hierarquia, o Inspector passa a mostrar configurações específicas deste texto selecionado (Imagem 8). Então, tenha certeza que que ele está posicionado no centro (Imagem 9), altere o que está escrito, o tamanho do texto e coloque em negrito (Imagem 10). Por fim, como não vamos alterar proporção ou outras coisas, faça como na Imagem 11 para centralizar seu texto na vertical e horizontal, e permita que ele ultrapasse as margens alterando os valores de Overflow.

Imagem 8

Imagem 9

Imagem 10

Imagem 11

Imagem 12

Após todos esses passos, sua tela de jogo deve estar como a capa deste post e a Imagem 12. Nos restando então apenas fazer com que nosso script saiba qual é o nosso painel de pause. Ao clicar no gameObject que contém nosso script, o Inspector vai nos mostrar todas as configurações daquele objeto, inclusive a variável Painel_de_pause que criamos. Então o que devemos fazer é literalmente arrastar nosso PAINEL da Hierarquia para dentro da variável desejada (Imagem 13). Desta forma, toda vez que a tecla P for pressionada nosso painel irá aparecer e desaparecer dependendo do caso.

Imagem 13

Assim finalizamos nosso tutorial em duas partes de como pausar um jogo na unity, via teclado e com uma pequena interface para nos dizer que isso aconteceu. Caso tenha gostado, não deixe de acompanhar outros posts no blog e no canal do YouTube para mais tutoriais!

Compartilhe !