CodeBlanks Logo Icon CodeBlanks

Skor sistemi

Skor tutan bir script ile oyun ilerlemesini öğrenirsin.

Skor Sistemi ve Singleton Deseni

Oyun boyunca toplanan puanların tek bir merkezde tutulması için bir ScoreManager oluşturulur. Diğer script'lerin sahnedeki yöneticiyi kolayca bulabilmesi için static instance (Singleton) yapısı kullanılır.

public class ScoreManager : MonoBehaviour {
    public static ScoreManager instance;
    public int score = 0;
    void Awake() {
        instance = this;
    }
}

Bu sayede herhangi bir altın toplandığında ScoreManager.instance.AddScore(10); şeklinde tek satırda çağrı yapılabilir.

Skoru UI Text'e Yansıtma

Skor her arttığında ekrandaki kullanıcı arayüzü (UI) güncellenmelidir. Text veya TextMeshProUGUI bileşeninin text özelliğine yeni değer atanır.

public void AddScore(int amount) {
    score += amount;
    scoreText.text = "Skor: " + score;
}

Böylece oyuncu topladığı puanın anında arayüzde yükseldiğini görerek ödüllendirilir.

Uygulama Skor güncelleme testi

Bir Start metodu tanımla. İçinde int skor = 100; tanımla ve konsola "Guncel skor: " + skor yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class ScoreTester : MonoBehaviour
{
    // Start icinde skor tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class ScoreTester : MonoBehaviour
{
    void Start()
    {
        int skor = 100;
        Debug.Log("Guncel skor: " + skor);
    }
}

Beklenen çıktı

Guncel skor: 100

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Diğer sınıfların sahnedeki ScoreManager script'ine 'ScoreManager.instance.AddScore(10)' şeklinde doğrudan erişebilmesini sağlayan mimari yaklaşım hangisidir?

  • Shader Pass
  • Singleton Deseni (static instance) Doğru cevap
  • Perlin Noise Filter
  • NavMesh Obstacle

Açıklama: Singleton deseni, statik bir sınıf referansı (instance) üzerinden nesneye tüm sahnelerden kolayca erişilmesini sağlar.

2 Arayüz skor metnini güncelle

Soru
scoreText.____ = "Skor: " + currentScore;
Cevap
scoreText.text = "Skor: " + currentScore;

Açıklama: UI metin bileşeninin ekranda gösterdiği dizeyi güncellemek için 'text' özelliği kullanılır.

3 Skor sistemi terimleri

Kavram Anlamı
ScoreManager Oyun skorunu merkezi tutan yönetici
AddScore Puanı artırıp UI'ı güncelleyen metot
scoreText Ekrandaki puanı gösteren UI öğesi
static instance Sınıfa global erişim sağlayan referans

İleri seviye bölümündeki tüm dersler