Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos II / Aula

arrow_back Aula 15 - Jogo Farm Coins - Parte 2

Acumulando e Exibindo a Pontuação

Criação do HUD (Exibindo a pontuação)

Agora, exibiremos a pontuação do jogo em um HUD criado por meio da utilização dos componentes UI do Unity. Usaremos as mesmas técnicas aprendidas no jogo Polygonal Rescue para realizar essa tarefa.

Inicialmente, crie um Canvas (GameObject -> UI -> Canvas) chamado “UI” na sua cena. Depois, adicione pelo menos um Text para as moedas coletadas na fase atual, outro para o tempo restante e um terceiro para as moedas coletadas no total. Veja a Figura 18.

Figura 18 - HUD com os campos de texto necessários.
HUD com os campos de texto necessários.
Fonte: Captura de tela do Unity – Game Engine. Disponível em: https://unity3d.com/pt/. Acesso em: 22 de maio de 2017

Clique duas vezes no UI para visualizá-lo no Scene View e utilize as técnicas estudadas para organizar os objetos Text no Canvas da maneira como deseja que sejam exibidos no jogo. A Figura 19 mostra um exemplo. Lembre-se que o Text exibidor das moedas finais deve ter o componente Text desabilitado (basta desmarcar o checkbox do componente no objeto), pois só é exibido no fim do jogo.

Figura 19 - Elementos da UI durante a execução do jogo.
Elementos da UI durante a execução do jogo.
Fonte: Captura de tela do Unity – Game Engine. Disponível em: https://unity3d.com/pt/. Acesso em: 22 de maio de 2017

Agora adicione um script chamado AtualizaUI no objeto UI, com o seguinte código:

x
1
using System.Collections;
2
using System.Collections.Generic;
3
using UnityEngine;
4
using UnityEngine.UI;
5
6
public class AtualizaUI : MonoBehaviour {
7
    public Text moedasText;
8
    public Text tempoRestanteText;
9
    public Text modeasTotalText;
10
11
    // Update is called once per frame
12
    void Update () {
13
        if (GameManager.instancia.finalizado) {
14
            moedasText.enabled = false;
15
            tempoRestanteText.enabled = false;
16
            modeasTotalText.enabled = true;
17
            modeasTotalText.text = GameManager.instancia.pontuacao.ToString() + " moedas coletadas!";
18
        } else {
19
            modeasTotalText.text = "Pontos: " + GameManager.instancia.pontuacao.ToString ();
20
            tempoRestanteText.text = "Tempo restante: " + ((int)(GameManager.instancia.tempo_restante)).ToString ();
21
        }
22
    }
23
}
Listagem 4 - Código do AtualizaUI.cs

O script AtualizaUI precisa que sejam atribuídos os objetos Text para as suas variáveis moedasText, tempoRestanteText e moedasTotalText. Faça isso arrastando esses objetos para os seus respectivos locais no Inspector do UI, como exibe a Figura 20.

Figura 20 - AtualizaUI com os objetos atribuídos às variáveis.
AtualizaUI com os objetos atribuídos às variáveis.
Fonte: Captura de tela do Unity – Game Engine. Disponível em: https://unity3d.com/pt/. Acesso em: 22 de maio de 2017

Salve e execute o jogo. Se tudo estiver adequado, você verá a quantidade de moedas aumentar quando coletá-las, assim como o tempo restante, como mostra a Figura 21. Ao final do tempo, você verá o total de moedas no centro da tela.

Figura 21 - Jogo em execução com a UI mostrando as moedas coletadas.
Jogo em execução com a UI mostrando as moedas coletadas.
Fonte: Captura de tela do Unity – Game Engine. Disponível em: https://unity3d.com/pt/. Acesso em: 22 de maio de 2017

Versão 5.3 - Todos os Direitos reservados