Menu
CoddyTech

Skor

Coddy'nin Unity'de 3D Yılan Oyunu 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
  1. GameManager içinde using TMPro; ve public TMP_Text scoreText; ekle. Sahne, bunu sol üstteki ScoreText olarak ayarlar.
  2. Start() içinde Score: 0 göster.
  3. Eat() içinde yeni skoru göster; üçüncü yiyecekten sonra Score: 3 olarak.

Play düğmesine bas ve yiyecekleri ye, ardından Check 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)];
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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