Unity'de OnStartServer() Metodu: Çok Oyunculu Oyunlarda Sunucu Başlangıcı
Paylaşan: Unity Eğitim
22 September 2025
3 dakika okuma
170 görüntülenme
Merhaba Unity geliştiricileri! Bu makalede, Unity'nin çok oyunculu oyun geliştirme sürecinde büyük önem taşıyan OnStartServer() metodunu detaylı bir şekilde inceleyeceğiz. Bu metod, sunucu tarafında oyun başlatıldığında otomatik olarak çağrılır ve sunucuya özel başlangıç işlemlerini gerçekleştirmek için ideal bir yerdir.
OnStartServer() Metodunun Rolü
OnStartServer() metodu, NetworkBehaviour sınıfından türetilen script'ler içerisinde kullanılır. Sunucuya özgü kaynakların yüklenmesi, oyun dünyasının oluşturulması, oyuncuların bağlantı durumlarının kontrolü gibi işlemler bu metod içerisinde gerçekleştirilir. İstemci tarafındaki OnStartClient() metoduna benzer şekilde çalışır ancak yalnızca sunucu üzerinde çalışır.Önemli Noktalar
- Yalnızca Sunucu Tarafında Çalışır: Bu metod sadece sunucu üzerinde çalışır. İstemcilerde çağrılmaz.
- Başlangıç İşlemleri: Oyunun sunucu tarafındaki başlangıç işlemlerini bu metod içinde gerçekleştirmelisiniz. Örneğin, oyun dünyasının oluşturulması, oyuncular için başlangıç noktalarının belirlenmesi, sunucu veritabanına bağlantı kurulması gibi.
- NetworkBehaviour Sınıfı: Bu metodu kullanabilmek için script'inizin
NetworkBehavioursınıfından türetilmesi gerekir.
OnStartServer() Metodu Örneği
Aşağıdaki örnekte,
OnStartServer() metodu kullanılarak oyun başlangıcında bir mesajın konsola yazdırılması ve bir oyun nesnesinin oluşturulması gösterilmektedir:using UnityEngine;
using UnityEngine.Networking;public class MyNetworkBehaviour : NetworkBehaviour
{
public override void OnStartServer()
{
Debug.Log("Sunucu başlatıldı!");
GameObject player = Instantiate(Resources.Load("Player") as GameObject);
NetworkServer.Spawn(player);
}
}
Bu örnekte, öncelikle
Debug.Log() fonksiyonu ile sunucunun başlatıldığını konsola yazdırıyoruz. Daha sonra, Resources klasöründen "Player" adlı bir oyun nesnesini yükleyip, Instantiate() fonksiyonu ile örnekliyoruz. Son olarak, NetworkServer.Spawn() fonksiyonu ile bu nesneyi ağa ekleyerek tüm istemcilere gönderiyoruz.OnStartServer() ve Diğer Network Metodları
OnStartServer() metodu, diğer NetworkBehaviour metodlarıyla birlikte kullanılarak daha karmaşık sunucu senaryoları oluşturulabilir. Örneğin, OnServerAddPlayer() metodu, yeni bir oyuncu sunucuya bağlandığında çağrılır ve bu oyuncu için gerekli işlemlerin yapılmasını sağlar. OnServerDisconnect() metodu ise bir oyuncunun sunucudan ayrıldığında çağrılır.Hata Ayıklama
Sunucu tarafında hata ayıklama yapmak için
Debug.Log() fonksiyonunu kullanabilirsiniz. Sunucu konsolunda bu mesajları görerek hataları tespit edebilirsiniz. Ayrıca, Unity'nin yerleşik hata ayıklama araçlarını da kullanabilirsiniz.Gelişmiş Kullanım Örnekleri
Oyun Dünyasının Oluşturulması
OnStartServer() metodu, oyun dünyasının oluşturulması için ideal bir yerdir. Örneğin, haritayı yükleme, NPC'leri yerleştirme ve diğer oyun nesnelerini oluşturma gibi işlemleri bu metod içinde gerçekleştirebilirsiniz.Veritabanı Bağlantısı
Çok oyunculu oyunlarda genellikle bir veritabanı kullanılır.
OnStartServer() metodu, veritabanına bağlantı kurmak ve oyun verilerini yüklemek için kullanılabilir.Oyuncuların Yönetimi
OnStartServer() metodu, oyuncuların bağlantı durumlarını izlemek ve oyun içi etkinlikleri yönetmek için kullanılabilir.Sonuç
OnStartServer() metodu, Unity'de çok oyunculu oyun geliştirmede sunucu tarafındaki başlangıç işlemlerini yönetmek için güçlü bir araçtır. Bu metodu doğru bir şekilde kullanarak, stabil ve performanslı çok oyunculu oyunlar geliştirebilirsiniz. Unutmayın ki, bu metod sadece sunucu üzerinde çalışır ve istemcilerde çağrılmaz. Bu makaledeki örnekleri ve açıklamaları inceleyerek, kendi oyunlarınızda OnStartServer() metodunu etkili bir şekilde kullanabilirsiniz. ← Önceki yazı
Unity'de SetActive() Metodu ile Oyun Nesnelerini Etkinleştirme ve Devre Dışı Bırakma
Sonraki yazı →
Unity ile Oyunlardan Reklam Geliri Elde Etmenin 7 Yolu (2026
🧠 Ders Sonu Değerlendirme Testi
Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.
Yorumlar (0)
İlk yorumu siz yapın!