これはあらゆる状況に適用されますので、私はそれがない場合は謝罪かどうかわからない - 私はNATTraversalと呼ばれるプラグインを使用していますUnityと私は同様の問題を抱えていました。ホストとの接続を見つける必要がありました。私は中継サーバを使用していないので、私のため、..私は、私は、このチェックを行うことができますことを見出した。これは私のシナリオで動作します
using UnityEngine.Networking;
void Start(){
if(NetworkServer.connections.Count > 0){
Debug.Log("This is the host.");
} else {
Debug.Log("This is a client.");
}
}
(これはリレーを避けている皆さんのためです)クライアントの接続理由リストは空ですが、ホストはありません。これを行うには良い方法があるかもしれませんが、NetworkIdentityの以前に構築されたリストがない場合はわかりません。
Network.isServer boolは常に私のためにfalseを返します。だから、私はそれをどうやって取得しました。うまくいけば、それは誰かを助けてくれるでしょう。
編集:(重要な情報を追加する) これは後のマッチメイキングであり、接続が確立されていることに注意してください。
私が見つけた別の方法は、NATLobbyManagerのOnServerConnectをリッスンすることです。唯一、NATTraversalプラグインでホストするために、すべてのこのようなものを把握しようとしているときに、この遭遇する可能性があり、誰のためのより多くの情報をトリガーするイベント
public override void OnServerConnect(NetworkConnection conn){ }
。 :)
あなたのクラスはNetworkBehaviourから継承していますか? – marsh
はい、NetworkBehaviourから継承しています。 – kmf