【Unity6】Multiplayer Centerを使ってみた

# 概要
Unity6でMultiplayer Centerが追加されました。
Multiplayer Centerとは、Multiplayerに関する機能を一律で管理できる機能になります。

Multiplayerのスクリプティング自体は今まで通りNetCodeで実装します。

# 使う
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/b559720f-f5ef-fb4c-7eb7-46d89e4b0766.png" width=50%>

するとウィンドウが開く

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/9f46fa6a-9dc6-1d88-dd4d-730cc2f481e3.png" width=50%>

左側のドロップダウンから、良さげなのを選択

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/ad8f1680-599d-5c06-d071-f5481eca3ad6.png" width=40%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/22bf9f82-b12b-d7f5-0a3e-6f68749d07b0.png" width=40%>

今回はこんな感じに設定してみる
左側メニューを用途に応じて設定することで、右側ウィンドウの設定を自動で調整してくれる
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/58f9b585-fbd6-3741-dd6a-e21f2ea0c16c.png" width=70%>

設定できたら `Install Packages` をクリックしてパッケージのインストールをする

するとこんなダイアログが表示され、Multiplayerを実装するためのヘルプを確認できる

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/d09f7ec0-5542-419e-4891-9a380c7441e2.png" width=50%>

`Create and open scene with netcode setup`ボタンを押すことで、簡易なサンプルをシーンにセットアップしてくれる

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/d46d585b-4e5b-5bce-3765-0a6f24e77673.png" width=50%>

この状態でエディタを再生状態にして、Start Hostを押すとプレイヤーを操作できるようになる

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/c15c95b2-6437-bc01-0925-76219a590b66.png" width=50%>

とはいえ一人で動かしても仕方がないので、デバッグ機能を活用する

Multiplayer Play Modeを選択し、

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/e42ab9fa-eb44-c736-e940-560599933081.png" width=50%>

開いたダイアログでPlayer 2を有効にする

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/ba1b5897-d27f-bfb1-8e00-97ef3523641c.png" width=60%>

Player 2用のダイアログが開く

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/b07c9ae7-866c-e658-e0e5-d5721680e650.png" width=60%>

片方をHost, もう片方をClientにすることで、位置を同期していることを確認できる
![スクリーンショット 2024-12-05 11.23.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/f86b7f04-79f4-4283-da4e-a116e92fad38.png)

# 便利ツール
Unityが便利なツールを用意してくれている

Multiplayer Toolsを開き...
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/29a4a278-2a9c-d4a0-220b-92a273039d97.png" width=60%>
ウィンドウ内のオプションを片っ端から有効にする
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/c9b600b4-df1d-3b47-e558-3c7af57534a0.png" width=60%>

再生するとネットワークの情報が見れるようになっている
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/08df0e3b-51ff-9d97-0574-41c895e8dcee.png" width=60%>

また、Hierarchyに追加されてる `Network Simulator` を使うことで、ネットワーク遅延やパケロスのシミュレーションもできる
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/1e93b685-b5d0-3fd6-bcf6-ff40730decbe.png" width=60%>

サンプルの中にはSessionを使ったものがあり理解を助けてくれる
![スクリーンショット 2024-12-05 14.52.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100503/3ecb6088-dd0c-08e2-87d4-f2bcc85cd9ac.png)

# 感想
導入部分がかなりやりやすくなったと思う
UIがわかりやすい :thumbsup: 
そもそもNetCode, Seesion, Lobbyあたりが使いやすすぎて言うことなし