Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
Ağ Programlama

Unity'de OnStopClient() Metodu: Ağ Bağlantısı Kesildiğinde Ne Olur?

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

Merhaba Unity geliştiricileri! Bu yazıda, Unity'nin ağ işlevselliğinin önemli bir parçası olan OnStopClient() metodu üzerinde duracağız. Bu metod, istemci tarafında ağ bağlantısının kesilmesi durumunda tetiklenir ve bu durumun yönetilmesi için kritik bir rol oynar.

OnStopClient() Metodunun Amacı


OnStopClient() metodu, bir Unity oyununda istemcinin sunucuyla olan bağlantısının kesildiğini algıladığında otomatik olarak çağrılır. Bu, sunucunun beklenmedik bir şekilde kapanması, istemcinin internet bağlantısının kopması veya istemcinin sunucudan bağlantıyı kasıtlı olarak kesmesi gibi çeşitli nedenlerden kaynaklanabilir. Bu metodun ana amacı, bağlantı kesilmesi durumunda oyunun düzgün bir şekilde kapanmasını sağlamak ve olası hataların önüne geçmektir.

Ne Zaman Çalışır?


OnStopClient() metodu, NetworkClient.Disconnect() metodu çağrıldığında veya bağlantı beklenmedik bir şekilde kesildiğinde (örneğin, sunucu kapanması veya ağ bağlantısı kesintisi) çalıştırılır. Bu metod, NetworkClient.isConnected özelliğinin false değerini almasıyla birlikte tetiklenir.

OnStopClient() Metodunun Kullanımı


OnStopClient() metodu, NetworkBehaviour sınıfından türetilen bir sınıf içinde tanımlanmalıdır. Bu metod, parametre almaz ve void türünde bir dönüş değeri vardır. Aşağıdaki örnekte, OnStopClient() metodunun nasıl kullanılacağını görebilirsiniz:

using UnityEngine;
using Mirror;

public class MyNetworkBehaviour : NetworkBehaviour
{
public override void OnStopClient()
{
Debug.Log("İstemci bağlantısı kesildi!");
// Bağlantı kesildiğinde yapılacak işlemler burada yazılır.
// Örneğin, oyuncunun karakterini yok edebilir veya ana menüye yönlendirebilirsiniz.
}
}


Örnek Senaryolar


OnStopClient() metodu, çeşitli senaryolarda kullanılabilecek esnek bir araçtır. İşte bazı örnekler:

  • Oyuncunun Oyun Dünyasından Çıkarılması: Bağlantı kesildiğinde, oyuncunun oyun dünyasındaki varlığını temizlemek için bu metodu kullanabilirsiniz. Bu, diğer oyuncuların bağlantı kesilen oyuncuyu hala görebilmelerini engellemeye yardımcı olur.

  • Kaynakların Serbest Bırakılması: Bağlantı kesildiğinde, istemci tarafından kullanılan kaynakları (örneğin, ağ bağlantıları, dosyalar) serbest bırakmak için bu metodu kullanabilirsiniz. Bu, bellek sızıntılarını önlemeye yardımcı olur.

  • Kullanıcı Bildirimleri: Bağlantı kesildiğinde, kullanıcıya bir hata mesajı göstermek veya bağlantıyı yeniden kurmak için bir seçenek sunmak için bu metodu kullanabilirsiniz.

  • Oyun Durumunun Kaydedilmesi: Bağlantı kesildiğinde, oyuncunun oyun durumunu (örneğin, puan, envanter) kaydetmek için bu metodu kullanabilirsiniz. Bu, oyuncunun bağlantıyı yeniden kurduğunda oyun durumunun korunmasını sağlar.


Hata Yönetimi


OnStopClient() metodu, ağ bağlantısı kesilmesi durumunda oluşabilecek hataları ele almak için kullanılabilir. Örneğin, bağlantı kesilmesinin nedenini belirlemek ve uygun bir hata mesajı göstermek için bu metodu kullanabilirsiniz. Bu, oyun deneyimini iyileştirmeye ve oyuncuların kafa karışıklığını azaltmaya yardımcı olur.

İleri Seviye Kullanımlar


Daha gelişmiş senaryolarda, OnStopClient() metodu ile birlikte NetworkManager sınıfının diğer metodlarını kullanarak daha karmaşık hata yönetimi ve bağlantı yeniden kurma mekanizmaları geliştirebilirsiniz. Örneğin, bağlantı kesildiğinde otomatik olarak yeniden bağlantı denemesi yapabilir veya sunucuya bir bildirim gönderebilirsiniz.

Bu yazıda, Unity'de OnStopClient() metodunun ne işe yaradığını, nasıl kullanıldığını ve ağ bağlantısı kesildiğinde neler olduğunu öğrendiniz. Umarım bu bilgiler, ağ tabanlı Unity oyunlarınızı geliştirmenize yardımcı olur! [YOUTUBE_VIDEO_BURAYA]

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