サーバやクライアントを探してNetworkManagerを使うの3パターンがあります。今回は真ん中の事を書きます。あと、マジな話をするとNetworkManagerもNetworkDiscoveryも殆どのケースで継承したカスタム版を作ります。Unity標準のままで使う事は無いです。しないと管理できない事多過ぎです...NetworkDiscoveryの中身NetworkDiscoveryのサーバ側は、自分の所在(IPアドレス)をLAN内にブロードキャストパケットを流すことで宣伝して回るNetworkDiscoveryのクライアント側は、NetworkDiscoveryのサーバが流しているブロードキャストパケットを受け取った時に専用の関数を呼ぶという機能だけを持っている、と覚えておきましょう。それ以外の実際のサーバ立ち上げや、クライアント接続などは全てNetworkManager側でやります。NetworkDiscoveryのサーバ側でプログラマが書くべきことNetworkManager側のStartHost()を最初に呼んでおきます。(純粋なサーバークライアントモデルの場合はStartServer()です)その後にNetworkDiscovery内でInitialize()してStartAsServer()を呼びます。するとNetworkDiscoveryは自動に定期的に(デフォルトで1秒ごとに)ブロードキャストパケットを流します。定期実行の停止ゲームを始めます。対戦相手を締め切りました。ゲーム終わるまで追加のプレイヤーは受け付けないようにしたいです。みたいな場合はStopBroadcast()してあげましょう。クライアント側を受け付けるときはStartBroadcast()を呼びます。呼ばないようにしますなぜなら、この時点ではサーバのIPアドレスが分かっていないからです。NetworkDiscovery内でInitialize()してStartAsClient()を呼びます。すると、このクライアント側はNetworkDiscoveryのサーバが流しているブロードキャストパケットを受け取れるようになります。