bu her durum için geçerlidir, bu yüzden bunları yapmazsa özür dileriz emin değilim - Ben NATTraversal adlı bir eklentiyi kullanıyorum Birlik ve benzer bir sorun yaşıyorduk. Ana bilgisayar olan bağlantıyı bulmam gerekiyordu. Ben röle sunucuları kullanarak değilim Ancak benim için .. Ben bu onay yapabilirsiniz bulundu Bu benim senaryoda çalışır
using UnityEngine.Networking;
void Start(){
if(NetworkServer.connections.Count > 0){
Debug.Log("This is the host.");
} else {
Debug.Log("This is a client.");
}
}
(bu röle kaçınır sizin için olan) müşterinin bağlantısı nedeniyle liste boş, ancak ev sahibi değil. Bunu yapmak için daha iyi bir yol olabilir, ancak daha önce NetworkIdentity'nin oluşturulmuş bir listesi olmadan bir tanesini bilmiyordum.
Network.isServer bool, benim için her zaman false değerini döndürür; Umarım birileri dışarıda yardımcı olur.
Düzenleme: (Önemli bilgiler ekleme) Lütfen bunun, AFTER eşleştirmesinin ve bağlantıların kurulduğunu unutmayın.
Bunu yapmanın başka bir yolu, NATLobbyManager'da OnServerConnect dinlemenin bulunmasıdır.
public override void OnServerConnect(NetworkConnection conn){ }
Yani etkinlik sadece bütün bunları anlamaya çalışırken bu süre rastlamak olabilir herkes için NATTraversal eklentisi ile ev sahibi daha fazla bilgi için tetikler. :)
Sınıfınız NetworkBehaviour'dan mi kalıyor? – marsh
Evet, NetworkBehaviour'dan miras. – kmf