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

Unity'de OnApplicationPause() Metodu: Uygulama Duraklatıldığında Ne Olur?

Paylaşan: Unity Eğitim 16 September 2025 3 dakika okuma 110 görüntülenme

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda bulunan ve uygulamanın duraklatılma veya devam ettirilme durumlarına tepki vermenizi sağlayan güçlü bir metod olan OnApplicationPause() metodunu detaylı olarak inceleyeceğiz. Bu metod, oyununuzun arka plana alınması veya tekrar ön plana getirilmesi gibi durumlarda belirli işlemleri gerçekleştirmek için idealdir.

OnApplicationPause() Metodunun Temelleri


OnApplicationPause() metodu, MonoBehaviour sınıfından türetilen herhangi bir script içinde kullanılabilir. Metod, bir bool parametresi alır. Bu parametre, true ise uygulama duraklatılmış, false ise uygulama tekrar aktif hale getirilmiş demektir.

Metot İmzası


protected virtual void OnApplicationPause(bool pauseStatus);

pauseStatus parametresi, uygulamanın duraklatılıp duraklatılmadığını gösterir. true değeri, uygulamanın duraklatıldığını, false değeri ise uygulamanın tekrar aktif hale getirildiğini belirtir.

OnApplicationPause() Kullanım Örnekleri


OnApplicationPause() metodu, birçok farklı senaryoda kullanılabilir. İşte bazı örnekler:

1. Oyun Müziğini Durdurma/Başlatma


Oyununuzun arka plana alındığında müziğin durdurulması ve tekrar ön plana getirildiğinde müziğin devam etmesi isteniyorsa OnApplicationPause() metodu ideal bir çözümdür.
using UnityEngine;

public class MusicManager : MonoBehaviour
{
private AudioSource audioSource;

void Start()
{
audioSource = GetComponent<AudioSource>();
}

void OnApplicationPause(bool pause)
{
if (pause)
{
audioSource.Pause();
}
else
{
audioSource.UnPause();
}
}
}


2. Kayıt İşlemlerini Yönetme


Oyun verilerinin kaydedilmesi gibi uzun süren işlemleri, uygulama duraklatıldığında başlatmak ve uygulama tekrar aktif olduğunda devam ettirmek için bu metodu kullanabilirsiniz. Bu, kullanıcının oyununu kaydetmeden uygulamadan çıkmasını engeller.
using UnityEngine;

public class SaveManager : MonoBehaviour
{
void OnApplicationPause(bool pause)
{
if (pause)
{
StartCoroutine(SaveGame());
}
}

IEnumerator SaveGame()
{
// Oyun verilerini kaydetme işlemleri burada gerçekleştirilir...
yield return null;
}
}


3. Ağ Bağlantısını Kontrol Etme


Uygulama arka plana alındığında ağ bağlantısının kesilmesini önlemek veya bağlantı durumunu kontrol etmek için OnApplicationPause() kullanılabilir.
using UnityEngine;

public class NetworkManager : MonoBehaviour
{
void OnApplicationPause(bool pause)
{
if (pause)
{
// Ağ bağlantısını yönetme işlemleri...
}
else
{
// Ağ bağlantısını kontrol etme ve yeniden bağlanma işlemleri...
}
}
}


Önemli Notlar


Performans: OnApplicationPause() metodunda uzun süren işlemlerden kaçının. Bu metod, uygulamanın duraklatılması veya devam ettirilmesi sırasında çağrılır ve uzun işlemler performans sorunlarına yol açabilir. Uzun süren işlemler için StartCoroutine() kullanarak bir coroutine başlatmanız önerilir.

Platform Bağımlılığı: OnApplicationPause() metodunun davranışı, platformlar arasında biraz farklılık gösterebilir. Mobil cihazlarda, uygulama tamamen kapatılmadığı sürece pauseStatus değeri true olabilir.

Bu bilgiler ışığında, OnApplicationPause() metodunun oyun geliştirme sürecinizde size sağlayacağı avantajları daha iyi anlayabilirsiniz. Uygulamanızın durumuna bağlı olarak çeşitli senaryolarda kullanarak oyun deneyimini geliştirebilirsiniz.

🧠 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!