🎮 Capítulo 4: Exibindo a Pontuação na Tela com um Sistema de UI!

Agora que nosso sistema de coleta de itens está funcionando, vamos exibir a pontuação na tela usando a UI da Unity! Isso permitirá que o jogador veja quantos itens coletou durante o jogo.


🛠 Passo 1: Criando o Texto da Pontuação

1️⃣ Na Hierarchy, clique com o botão direito e vá em UI > Text – TextMeshPro.
2️⃣ Se aparecer uma mensagem pedindo para importar o TextMeshPro Essentials, clique em Importar.
3️⃣ Renomeie o objeto para ScoreText.
4️⃣ No Inspector, faça as seguintes alterações:

  • Text: Digite “Pontuação: 0” como texto inicial.
  • Font Size: Ajuste para 40 (ou o tamanho que preferir).
  • Alignment: Escolha Center para alinhar o texto.
  • Color: Escolha uma cor branca ou outra que contraste com o fundo.
  • Position: Ajuste a posição do texto na tela, colocando-o no canto superior esquerdo.

🛠 Passo 2: Criando o Script de Pontuação

Agora vamos criar um script que atualizará o texto da pontuação sempre que o jogador coletar um item.

1️⃣ Vá até a pasta Scripts e crie um novo script chamado ScoreManager.cs.
2️⃣ Abra o script e substitua o código por este:

using UnityEngine;
using TMPro; // Biblioteca necessária para usar TextMeshPro

public class ScoreManager : MonoBehaviour
{
    public static ScoreManager instance; // Criamos uma instância única para facilitar o acesso à pontuação
    public TextMeshProUGUI scoreText; // Referência ao texto da pontuação
    private int score = 0; // Variável para armazenar a pontuação

    void Awake()
    {
        // Garante que só exista uma instância do ScoreManager
        if (instance == null)
        {
            instance = this;
        }
    }

    public void AddPoint()
    {
        score++; // Aumenta a pontuação
        scoreText.text = "Pontuação: " + score; // Atualiza o texto na tela
    }
}

3️⃣ Salve o script e arraste-o para um GameObject vazio chamado GameManager na Hierarchy.
4️⃣ No Inspector, arraste o ScoreText para o campo ScoreText do script.

🛠 Passo 3: Conectando com o Sistema de Coleta

Agora, vamos conectar a pontuação ao sistema de coleta de itens.

1️⃣ Abra o script “ItemCollector.cs” e modifique-o assim:

using UnityEngine;

public class ItemCollector : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("Item")) // Verifica se o objeto coletado tem a tag "Item".
        {
            ScoreManager.instance.AddPoint(); // Adiciona pontuação ao coletar o item
            Destroy(collision.gameObject); // Remove o item da cena
        }
    }
}

2️⃣ Salve e teste o jogo! Agora, sempre que o jogador coletar um item, a pontuação será atualizada na tela.


🎮 Testando o Sistema

✅ Pressione Play e colete um item.
✅ O número na UI deve aumentar sempre que um item for coletado.
✅ Agora a pontuação está visível e funcional!

No próximo capítulo, vamos adicionar efeitos visuais ao coletar o item, como partículas e som! 🚀

Se tiver dúvidas, assista ao tutorial no YouTube: (colocar link aqui).

🧱 Criando Tijolos Destrutíveis como no Mario Bros!