Unity 6 + MagicOnion で作る4人対戦バトルロイヤルのテンプレート。 Multiplayer Play Mode を使えば1台のPCで4クライアントの対戦を検証できます。
MultiPlayerGame.Unity/ # Unityクライアント (Unity 6000.5.3f1 / URP)
MultiPlayerGame.Server/ # MagicOnionサーバー (ASP.NET Core / .NET 8)
MultiPlayerGame.Server.Tests/ # サーバーのユニットテスト (xUnit)
MultiPlayerGame.Shared/ # 共有定義 (サーバー: csproj参照 / Unity: ローカルUPMパッケージ)
MagicOnion 7 / MessagePack 3 (Source Generator) / YetAnotherHttpHandler / UniTask / NuGetForUnity。
NuGetパッケージはUnity起動時に Assets/packages.config から自動復元されます。
dotnet run --project MultiPlayerGame.Serverサーバー起動後 (gRPC: localhost:5000、生存確認: localhost:5001)、
Unity で MultiPlayerGame.Unity を開き Assets/Scenes/TitleScene を Play。
- 初回: 名前を入力してアカウント発行 → Connect でマッチング
- 2回目以降: アカウントはサーバーが記憶しているので Connect だけでOK (削除ボタンあり)
- 4人揃うとゲーム開始。WASD移動 / Q発射。HP100・弾25ダメージ、最後の1人が勝者
- Multiplayer Play Mode:
Window > Multiplayer > Multiplayer Play Modeで Player 2〜4 を有効化して Play。 各ウィンドウでアカウントを発行すれば以降はConnectのみ (Run In Background は設定済み) - ボット: エディタ1つで済ませたい場合は、マッチング中に
Tools > MultiPlayerGame > Join 3 Bots (moving)
dotnet test MultiPlayerGame.Server.TestsUnlicense (パブリックドメイン)