なぜかうまくつながらないと思ったら
UNETでうまくつながらないといえば使ったことある人にとってはあるあるだと思うのですが、遭遇すると解決に手間取って「ああ!もういい!」って投げてしまいそうになります。そんなあるある例としては以下のようなものでないでしょうか。
- ホストになった端末が見えない
- ホストは見えて参加もできるが、アプリが通信していない
同一ネットワークに参加していても発生する場合はたいていFire Wallがポートをふさいでいるというのがよくある話です。
UNETのポート関連
UNETが使うポートについてはいくつかあります。
- NeworkManagerが通信に使用するポート(1つ)
- MatchMaker用のポート(1つ)
- NetworkDiscoveryが通信に使用するポート(1つ)
NetworkDiscoveryは状況に応じて使用の有無があります。(ホストを自動検索する場合等)よってこのポートをFire Wall上で開けてあげれば通信は可能です。
対象のFire Wall
私は環境上Windows DefenderのFire Wallに阻まれるのでここの設定をUNETが通るように設定変更を行います。
ポイントはUnity Editorのポートの解放状況です。どうもUnityはインストール時点で下記のように「受信の規則」の中でpublicネットワークに向けての通信はデフォルトでブロックしています。これが影響していてエディタ上ではつながらないことが多いんですね。
ということで「Unity 2017.2.1p2 Editor」の設定を「ブロック」ではなく「許可」に変更してあげれば解決します。変更するEditorについては使用しているUnityのバージョンを見てください。
念のため
UNETでの検証が終わったらもとに戻しておきましょう。