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

Unity'de OnApplicationFocus() Metodu: Uygulama Odaklandığında ve Kaybettiğinde Ne Olur?

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

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda uygulamanızın odak durumunu algılamak ve ona göre tepki vermek için kullanılan güçlü bir metod olan OnApplicationFocus() metodunu detaylı olarak inceleyeceğiz. Bu metod, oyununuzun pencere odaklı veya arka planda çalışırken farklı davranışlar sergilemesini sağlar ve oyun deneyimini iyileştirmek için birçok yararlı uygulama sunar.

OnApplicationFocus() Metodunun Temelleri


OnApplicationFocus() metodu, MonoBehaviour sınıfından türetilen bir script içinde tanımlanır. Bu metod, oyununuzun pencere odak durumunda bir değişiklik olduğunda otomatik olarak çağrılır. Metod, iki parametre alır:

  • bool hasFocus: Uygulamanın şu anda odaklı olup olmadığını belirten bir boolean değer. true ise uygulama odaklı, false ise odak dışı demektir.

  • bool isFocus: Uygulamanın odak durumunun değiştiğini belirten bir boolean değişken. Eğer doğruysa, uygulama odaklanmış veya odaktan çıkmıştır.


Bu parametreler sayesinde, uygulamanızın odak durumuna göre farklı işlemler gerçekleştirebilirsiniz. Örneğin, uygulama odak dışı olduğunda oyunu duraklatabilir veya kaynak tüketimini azaltabilirsiniz.

Kod Örneği:



using UnityEngine;

public class FocusManager : MonoBehaviour
{
void OnApplicationFocus(bool hasFocus)
{
if (hasFocus)
{
Debug.Log("Uygulama odaklandı!");
// Oyunu devam ettir, sesleri aç, animasyonları başlat vb.
Time.timeScale = 1f;
}
else
{
Debug.Log("Uygulama odak dışı!");
// Oyunu duraklat, sesleri kıs, animasyonları durdur vb.
Time.timeScale = 0f;
}
}
}


Yukarıdaki örnekte, uygulama odaklıysa Time.timeScale 1'e ayarlanarak oyun devam eder, odak dışıysa 0'a ayarlanarak oyun duraklatılır. Bu, oyuncunun uygulamaya geri döndüğünde oyunu aynı yerden devam etmesini sağlar.

OnApplicationFocus()'un Kullanım Alanları


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

1. Oyunun Duraklatılması ve Devam Ettirilmesi:


Oyuncunun uygulamadan uzaklaştığında oyunu otomatik olarak duraklatmak ve geri döndüğünde devam ettirmek için ideal bir yöntemdir. Bu, pil ömrünü korur ve kaynak tüketimini azaltır.

2. Ses ve Müzik Kontrolü:


Uygulama odak dışı olduğunda ses ve müzik seviyesini düşürerek veya tamamen kapatarak sistem kaynaklarını daha verimli kullanabilirsiniz.

3. Animasyon ve Parçacık Etkileri Kontrolü:


Performansı artırmak için, uygulama odak dışı olduğunda animasyonları ve parçacık efektlerini geçici olarak durdurabilirsiniz.

4. Ağ Bağlantısı Yönetimi:


Uygulama arka planda çalışırken ağ bağlantısını keserek veya verileri daha az sıklıkla güncelleyerek bant genişliği tüketimini azaltabilirsiniz.

5. Kaynak Yönetimi:


Uygulama odak dışı olduğunda yüksek çözünürlüklü dokuları düşük çözünürlüklü dokularla değiştirerek veya bazı oyun nesnelerini devre dışı bırakarak daha fazla kaynak tasarrufu sağlayabilirsiniz.

Gelişmiş Kullanım Senaryoları


OnApplicationFocus() metodu, daha karmaşık oyunlarda da kullanılabilir. Örneğin, çok oyunculu bir oyunda, uygulama odak dışı olduğunda oyuncunun durumunu sunucuya bildirerek diğer oyuncuların senkronizasyonunu koruyabilirsiniz. [YOUTUBE_VIDEO_BURAYA]

Sonuç


OnApplicationFocus() metodu, Unity oyun geliştirmede uygulamanızın odak durumunu yönetmek için güçlü bir araçtır. Bu metodu doğru kullanarak, daha akıcı, daha verimli ve daha iyi bir kullanıcı deneyimi sunabilirsiniz.

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