Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
C# Dersleri

Unity'de OnApplicationQuit() Metodu: Uygulama Kapanırken Temizlik İşlemleri

Paylaşan: Unity Eğitim 11 September 2025 4 dakika okuma 148 görüntülenme

Merhaba Unity geliştiricileri! Bu yazıda, oyun uygulamanız kapatıldığında çalıştırılan özel bir Unity metodu olan OnApplicationQuit() fonksiyonunu detaylı bir şekilde inceleyeceğiz. Bu metod, oyununuzun düzgün bir şekilde kapanmasını sağlamak ve kaynak sızıntılarını önlemek için oldukça önemlidir.

OnApplicationQuit() Metodunun Amacı


OnApplicationQuit() metodu, oyun uygulamanızın editörde veya oynatıcıda kapatılması durumunda çağrılır. Bu metod, oyununuzun çalıştığı süre boyunca oluşturulmuş dosyaları kapatmak, ağ bağlantısını kesmek, kaydedilmemiş verileri kaydetmek veya diğer temizlik işlemlerini gerçekleştirmek için ideal bir yerdir. Uygulamanızın düzgün bir şekilde kapanmasını sağlamak ve kaynak sızıntılarını önlemek için bu metodu doğru kullanmak kritik öneme sahiptir.

Ne Zaman Kullanılır?


OnApplicationQuit() metodu, aşağıdaki senaryolarda kullanışlıdır:

  • Kaydedilmemiş verilerin kaydedilmesi: Oyuncunun ilerlemesini veya oyun durumunu bir dosyaya kaydetmek için kullanılabilir.

  • Açık dosyaların kapatılması: Oyun çalışırken açılan dosyaları kapatmak için kullanılabilir.

  • Ağ bağlantısının kesilmesi: Oyunun bir sunucuya bağlıysa, bağlantıyı kesmek için kullanılabilir.

  • Harici kaynakların serbest bırakılması: Oyun tarafından kullanılan harici kaynakları (örneğin, bir veritabanı bağlantısı) serbest bırakmak için kullanılabilir.

  • Animasyonların durdurulması: Çalışan animasyonları durdurmak için kullanılabilir.


OnApplicationQuit() Metodunun Kullanımı


OnApplicationQuit() metodu, MonoBehaviour sınıfından türetilen bir script içinde tanımlanır ve boş bir metod olarak çağrılır. İçerisine, uygulama kapatılırken yapılması istenen işlemler yazılır.
using UnityEngine;

public class QuitHandler : MonoBehaviour
{
void OnApplicationQuit()
{
// Uygulama kapatıldığında yapılacak işlemler buraya yazılır
Debug.Log("Uygulama kapatılıyor...");
SaveGame();
CloseConnections();
}

void SaveGame()
{
// Oyun verilerini kaydetme işlemleri
Debug.Log("Oyun verileri kaydediliyor...");
}

void CloseConnections()
{
// Ağ bağlantısını kesme işlemleri
Debug.Log("Ağ bağlantısı kesiliyor...");
}
}


Bu örnekte, OnApplicationQuit() metodu içinde SaveGame() ve CloseConnections() fonksiyonları çağrılıyor. Bu fonksiyonlar, oyun verilerini kaydetme ve ağ bağlantısını kesme gibi işlemleri gerçekleştirir. Debug.Log() fonksiyonu ise, işlemlerin başarılı bir şekilde gerçekleştirildiğini kontrol etmek için kullanılır.

Önemli Notlar


1. Platform Bağımlılığı: OnApplicationQuit() metodu, tüm platformlarda aynı şekilde çalışmayabilir. Bazı platformlarda, bu metod hiç çağrılmayabilir. Bu nedenle, bu metoda güvenen işlemlerin yedek planları olması önemlidir.

2. Zamanlama: OnApplicationQuit() metodu, uygulamanın tamamen kapanmasından hemen önce çağrılır. Bu nedenle, uzun süren işlemler için bu metodu kullanmaktan kaçınılmalıdır. Uzun süren işlemler için, StartCoroutine() gibi fonksiyonlar kullanılarak, işlemler arka planda gerçekleştirilebilir.

3. Kaynak Yönetimi: OnApplicationQuit() metodu, uygulama kapatılırken kaynakları serbest bırakmak için kullanılır. Ancak, bu metod her zaman güvenilir bir şekilde çalışmayabilir. Bu nedenle, kaynakların doğru şekilde yönetildiğinden emin olmak için, diğer kaynak yönetimi teknikleri de kullanılmalıdır.

Örnek Senaryolar


İşte OnApplicationQuit() metodunun kullanılabileceği bazı örnek senaryolar:

  • Oyuncunun ilerlemesini bir dosyaya kaydetmek

  • Bir veritabanına bağlantıyı kapatmak

  • Bir ağ sunucusuna bağlantıyı kapatmak

  • Açık olan tüm dosyaları kapatmak

  • Çalışan animasyonları durdurmak


Sonuç


OnApplicationQuit() metodu, Unity oyunlarınızın düzgün ve güvenilir bir şekilde kapanmasını sağlamak için önemli bir araçtır. Bu metodu doğru kullanarak, kaynak sızıntılarını önleyebilir ve oyununuzun performansını iyileştirebilirsiniz. Ancak, platform bağımlılığı ve zamanlama gibi faktörleri göz önünde bulundurmanız önemlidir.

 

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!