Menu
CoddyTech

A pontuação

Lição 11 de 14 do curso Jogo de Cobra 3D na Unity da Coddy.

A pontuação aumenta em GameManager, mas ninguém consegue vê-la. Um texto do TextMeshPro no canto superior esquerdo a exibe: um campo TMP_Text definido no Inspector, e sua propriedade text recebe um valor pelo código.

Escreva o texto no mesmo lugar em que o número muda, depois da alteração. Assim, a tela nunca fica desatualizada em relação à pontuação. Uma loja atualiza suas moedas da mesma forma:

public void Buy(int price)
{
    coins -= price;
    coinsText.text = "Coins: " + coins;
}

Defina o texto uma vez também em Start(), para que o primeiro quadro mostre a pontuação real, independentemente do texto exibido na cena.

challenge icon

Desafio

Médio
  1. Em GameManager, adicione using TMPro; e public TMP_Text scoreText;. A cena define como ScoreText, no canto superior esquerdo.
  2. Em Start(), exiba Score: 0.
  3. Em Eat(), exiba a nova pontuação, como Score: 3 após a terceira comida.

Pressione Play e coma, depois pressione Check.

Experimente você mesmo

using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    public Snake snake;
    public GameObject foodPrefab;
    private Transform food;
    private int score;

    void Awake()
    {
        Instance = this;
    }

    void Start()
    {
        food = Instantiate(foodPrefab).transform;
        MoveFood();
    }

    public bool IsFood(Vector3 cell)
    {
        return cell == food.position;
    }

    public void Eat()
    {
        score++;
        MoveFood();
    }

    void MoveFood()
    {
        List<Vector3> free = new List<Vector3>();
        for (int x = -snake.edge; x <= snake.edge; x++)
        {
            for (int z = -snake.edge; z <= snake.edge; z++)
            {
                Vector3 cell = new Vector3(x, 0f, z);
                if (!snake.Occupies(cell))
                {
                    free.Add(cell);
                }
            }
        }
        food.position = free[Random.Range(0, free.Count)];
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Jogo de Cobra 3D na Unity