Oyun sonu ekranı
- Oyun Geliştirme kursu
- İleri seviye
- Ders 53/71
- 4 dk
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
using UnityEngine;
public class GameOverTester : MonoBehaviour
{
// Start icinde durum tanimla ve yazdir
}Örnek çözüm
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
gameOverPanel.____(true);
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 |