【Unity】NetworkMigrationManagerを試してみる【UNET】
Unity5.3.1p3より追加されたNetworkMigrationManagerですが、
これなにが出来るのかって言うと、ホストマイグレーションができます。
ホストマイグレーションっていうのはつまり通信中にホストが落ちちゃった場合にクライアントの誰かが新しいホストになりかわって通信を繋ぎ直し、ゲームを継続するというもの。
Photonなんかだと普通に実装されている機能ですが、UNETには今までなかったのでこれでちょっとはPhotonの対抗馬となれるのかなーと思い実際に動かしてみました。
やり方
1) 空のプロジェクトを作成します。
2) 空のオブジェクトを作成し、コンポーネントにNetworkManager HUD、NetworkManager、NetworkMigrationManagerを追加してやります。
3) もう一個空のオブジェクトを作成し、NetworkIdentityを追加します。Local Player Authorityにチェックを入れます。
4) 3で作成したオブジェクトをprefab化します。元のは消していいです。
5) 2で作成したオブジェクトのNetworkManagerのPlayer Prefabに4で作成したprefabを追加します。
6) ホストマイグレーションのテストなので、エディタ以外に最低もう一個クライアントが必要となります。PCアプリとしてプロジェクトをビルドします。
7) 6でビルドしたPCアプリを実行して、エディタも実行します。
8) どっちかでLAN Hostします。もう一方でLAN Clientします。つながりましたね?
9) LAN Hostした方をSTOPします。これでホストが落ちたことになります。
10) LAN Clientした方でPick new Host→Start as Hostします。これでこいつが新しいホストになります。
11) STOPした方でPick new Host→Recconect as Clientします。これでさっきホストだった方がクライアントとしてつながりました。