Menu
CoddyTech

Wynik

Lekcja 11 z 14 w kursie Gra w Unity: Wąż 3D w Coddy.

Wynik rośnie w GameManager, ale nikt nie może go zobaczyć. Tekst TextMeshPro w lewym górnym rogu go wyświetla: pole TMP_Text ustawione w Inspectorze, a jego text przypisywany w kodzie.

Ustaw tekst w tym samym miejscu, w którym zmienia się liczba, zaraz po zmianie. Dzięki temu ekran nigdy nie będzie pokazywał nieaktualnego wyniku. Sklep aktualizuje liczbę monet w ten sam sposób:

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

Ustaw tekst również raz w Start(), aby już pierwsza klatka wyświetlała rzeczywisty wynik, niezależnie od tego, co mówi tekst w scenie.

challenge icon

Wyzwanie

Średni
  1. W GameManager dodaj using TMPro; i public TMP_Text scoreText;. Scena przypisuje do niego ScoreText w lewym górnym rogu.
  2. W Start() wyświetl Score: 0.
  3. W Eat() wyświetl nowy wynik, na przykład Score: 3 po zjedzeniu trzeciego owocu.

Naciśnij Graj i jedz, a następnie naciśnij Sprawdź.

Spróbuj swoich sił

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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Gra w Unity: Wąż 3D