サーバーのIP addressが固定なら良いのですが、テストでは127.0.0.1と完全にローカルで完結するのでそのままで良いのですが。
2人が同じLANに接続した状態では ipアドレスがわからないと
まずは自分の ip addressを取得してみる。
NetworkManager.Singleton.networkAddressというのは使えない模様・・・
networkdiscoveryでLAN内のipをチェック
netcodeにはnetwork discoveryがないのでこちらを使うそうです。
https://github.com/Unity-Technologies/multiplayer-community-contributions.git?path=/com.community.netcode.extensions
こてを Add package from git url
Netcode for GameObjects Community Extension Package . を追加しました^^
Exampleを見ながら サーバーを探して接続しました!(後ほど説明を追加
netcode for gameobjectsのバージョンも関係ある?
ざっくり手順
A NetworkDiscovery -> StartServer
A NetworkManager -> StartHost
B NetworkDiscovery -> StartClient
B NetworkDiscovery -> ClientBroadcast
順番はどちらが先でも同じですが
B NetworkDiscovery -> ResponseReceived に通知が来るのでその中で
sender.Addressにサーバーのアドレスがわかるのでipとポートを設定して
127.0.0.1をsender.Addressに置き換えます。server(host)のほうは127.0.0.1でok
UNetTransportのconnectAddress, connectPort
B NetworkManager -> StartClient
で接続OK
A,B NetworkDiscovery -> stopDiscovery で止めます。
NetworkManager, NetworkDiscoveryは同じゲームオブジェクトに。
Discoveryのポートはconnect portとは別。server nameはオリジナルで良いのかな
iPhoneとPCで接続できました^v^v
コメント