CodeBlanks Logo Icon CodeBlanks

Oyun sonu ekranı

Game over ekranını UI ile oluşturmayı öğrenirsin.

Oyun Sonu (Game Over) Paneli

Oyuncunun canı bittiğinde veya süre dolduğunda oyun sonu tetiklenir. Canvas üzerinde başlangıçta pasif duran Game Over paneli gameOverPanel.SetActive(true) komutuyla açılır.

public GameObject gameOverPanel;

public void GameOver() {
    gameOverPanel.SetActive(true);
    Time.timeScale = 0f; // Fizik ve zamani durdur
}

Time.timeScale = 0f; yapılarak sahnedeki fizik hareketleri dondurulur.

Yeniden Başlatma ve SceneManager

Game Over panelindeki 'Tekrar Oyna' butonuna tıklandığında oyun zamanı tekrar Time.timeScale = 1f; yapılarak normale döndürülür ve SceneManager.LoadScene ile mevcut sahne yeniden yüklenir.

using UnityEngine.SceneManagement;

public void RestartGame() {
    Time.timeScale = 1f;
    SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}

Böylece oyuncu sıfırlanmış bir sahneyle temiz bir başlangıç yapar.

Uygulama Oyun sonu paneli durumu

Bir Start metodu tanımla. İçinde string durum = "Oyun sonu paneli aktif"; tanımla ve konsola Debug.Log(durum); ile yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class GameOverTester : MonoBehaviour
{
    // Start icinde durum tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class GameOverTester : MonoBehaviour
{
    void Start()
    {
        string durum = "Oyun sonu paneli aktif";
        Debug.Log(durum);
    }
}

Beklenen çıktı

Oyun sonu paneli aktif

Soru ve cevaplar

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

1 Oyun bittiğinde sahnedeki fizik ve hareket döngüsünü tamamen dondurmak için hangi Unity komutu kullanılır?

  • Screen.fullScreen = false;
  • AudioListener.pause = false;
  • QualitySettings.SetQualityLevel(0);
  • Time.timeScale = 0f; Doğru cevap

Açıklama: Time.timeScale = 0f; ataması oyun zamanını sıfıra indirerek Update (Time.deltaTime ile) ve FixedUpdate hareketlerini durdurur.

2 Paneli aktif et

Soru
gameOverPanel.____(true);
Cevap
gameOverPanel.SetActive(true);

Açıklama: Bir GameObject nesnesini görünür kılmak için 'SetActive(true)' metodu çağrılır.

3 Oyun sonu kavramları

Kavram Anlamı
gameOverPanel Oyun bittiğinde açılan UI paneli
Time.timeScale = 0f Oyun zamanını ve hareketleri duraklatır
Restart Sahneyi baştan yükleyip oyunu sıfırlar
SceneManager.LoadScene Belirtilen sahneyi hafızaya yükler

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