Menu
CoddyTech

Skor

Coddy'nin Unity Oyunu: 3D Yılan kursunda ders 11 / 14.

GameManager içinde puan artıyor, ama kimse onu göremiyor. Sol üst köşedeki bir TextMeshPro metni puanı gösterir: Inspector'da ayarlanan bir TMP_Text alanı ve koddan yazılan text.

Metni, sayı değiştikten sonra değişikliğin yapıldığı yerde yaz. Böylece ekran puanın gerisinde kalmaz. Bir mağaza da jetonlarını aynı şekilde günceller:

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

Sahnedeki metin ne söylüyor olursa olsun, ilk karede gerçek puanın gösterilmesi için metni Start() içinde de bir kez ayarla.

challenge icon

Görev

Orta

Puanı ekranda göster.

  1. GameManager içinde using TMPro; ve public TMP_Text scoreText; ekle (sahne ScoreText'e bağlanır).
  2. Start() içinde Score: 0 göster.
  3. Eat() içinde puanı aldıktan sonra "Score: " + score göster.

“Oyna” düğmesine bas ve yiyecekleri ye: sol üstte Score: 1, Score: 2 sayılır. Ardından “Kontrol et” düğmesine bas.

Kendin dene

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)];
    }
}

Unity Oyunu: 3D Yılan bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground