メインコンテンツまでスキップ

ユーザーインターフェースの準備 - ピアツーピアによるクイックマッチ - (Unity モジュール)

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

備考

AccelByte Gaming Services (AGS) SDK for Unity は WebGL で P2P をサポートしていません。このモジュールは WebGL ビルドでは使用できません。

メニューの内容

このセクションでは、マッチメイキング用の UI メニューを準備する方法を学びます。これらの UI は以下のクラスで定義されています:

  • MatchmakingMenu: マッチメイキング前にゲームモード選択を表示するために使用される C# クラス。

    • C# ファイル: Assets/Resources/Modules/Play/MatchmakingEssentials/Scripts/UI/MatchmakingMenu.cs
    • Prefab ファイル: Assets/Resources/Modules/Play/MatchmakingEssentials/Prefabs/MatchmakingMenu.prefab
  • MatchmakingServerTypeMenu: マッチメイキング前にサーバータイプ選択(ピアツーピアまたはピアツーピア)を表示するために使用される C# クラス。

    • C# ファイル: Assets/Resources/Modules/Play/MatchmakingEssentials/Scripts/UI/MatchmakingServerTypeMenu.cs
    • Prefab ファイル: Assets/Resources/Modules/Play/MatchmakingEssentials/Prefabs/MatchmakingServerTypeMenu.prefab
  • MatchmakingP2PMenu_Starter: マッチメイキング開始、マッチ発見、マッチメイキングキャンセルなどのマッチメイキング状態を表示するために使用される C# クラス。

    • C# ファイル: Assets/Resources/Modules/Play/MatchmakingP2P/Scripts/UI/MatchmakingP2PMenu_Starter.cs
    • Prefab ファイル: Assets/Resources/Modules/Play/MatchmakingP2P/Prefabs/MatchmakingP2PMenu_Starter.prefab

これらの UI がどのように構築されているかの詳細を見てみましょう。

マッチメイキングメニュー

以下は MatchmakingMenu Prefab のプレビューです。この Prefab には、マッチメイキング開始前にゲームモードを選択するためのボタンが含まれています。

Matchmaking menu preview Unity Byte Wars quick match peer-to-peer

このメニューで使用されるコンポーネントは MatchmakingMenu クラスで定義されています。ゲームモードボタンの1つがクリックされると、選択されたゲームモードが SelectedGameMode プロパティに保存されます。

public static InGameMode SelectedGameMode { get; private set; }

[SerializeField] private Button eliminationButton;
[SerializeField] private Button teamDeathMatchButton;
[SerializeField] private Button backButton;

マッチメイキングサーバータイプメニュー

以下は MatchmakingServerTypeMenu Prefab のプレビューです。この Prefab には、マッチメイキング開始前にサーバータイプを選択するためのボタンが含まれています。

Matchmaking server type menu preview Unity Byte Wars quick match peer-to-peer

このメニューで使用されるコンポーネントは MatchmakingServerTypeMenu クラスで定義されています。サーバータイプボタンの1つがクリックされると、選択されたタイプに基づいて次のメニューが開きます。例えば、ピアツーピアボタンがクリックされると、MatchmakingP2PMenu_Starter Prefab がインスタンス化されます。

[SerializeField] private Button dedicatedServerButton;
[SerializeField] private Button peerToPeerButton;
[SerializeField] private Button backButton;

マッチメイキング P2P メニュー

MatchmakingP2PMenu_Starter Prefab には、マッチメイキング状態に基づいて特定のメニューを表示するための状態スイッチャーが含まれています。メニュー状態を切り替えるために、MatchmakingP2PMenu_Starter クラスで以下に定義されたコンポーネントを使用します。

[SerializeField] private MatchmakingStateSwitcher stateSwitcher;

以下は、このメニューに含まれる状態のリストです。

  • マッチメイキング開始状態

    この状態は、マッチメイキングが開始され、マッチメイキングリクエストが送信されていることを示すメッセージを表示します。

    Matchmaking P2P menu start matchmaking state preview Unity Byte Wars quick match peer-to-peer

  • マッチメイキングキャンセル状態

    この状態は、マッチメイキングがキャンセルされたことを示すメッセージを表示します。

    Matchmaking P2P menu cancel matchmaking state preview Unity Byte Wars quick match peer-to-peer

  • マッチ検索中状態

    この状態は、マッチメイキングが進行中であることを示すメッセージを表示します。また、プレイヤーがマッチメイキングプロセスをキャンセルできるボタンも表示されます。

    Matchmaking P2P menu finding match state preview Unity Byte Wars quick match peer-to-peer

  • マッチ発見状態

    この状態は、マッチメイキングがマッチしたプレイヤーを正常に見つけ、新しいセッションを作成する準備ができていることを示すメッセージを表示します。

    Matchmaking P2P menu match found state preview Unity Byte Wars quick match peer-to-peer

  • マッチ参加確認状態

    この状態は、プレイヤーがマッチに参加するか、マッチ招待を拒否するかを選択できるボタンを含むダイアログを表示します。また、プレイヤーが選択しない場合の自動参加カウントダウンも含まれています。

    Matchmaking P2P menu join match confirmation state preview Unity Byte Wars quick match peer-to-peer

  • エラー状態

    この状態は、マッチメイキングプロセス中に発生したエラーメッセージを表示します。また、マッチメイキングを再試行するボタンも表示されます。

    Matchmaking P2P menu error state preview Unity Byte Wars quick match peer-to-peer

UI の準備

このセクションでは、マッチメイキング機能の統合を開始するために、前述のメニューを準備します。

  1. MatchmakingP2PMenu_Starter クラスを開き、以下の関数を作成します。後でこの関数を使用してマッチメイキング開始リクエストを送信します。今のところ、以下のコードを追加してメニューをマッチメイキング開始状態に切り替えます。

    private void StartMatchmaking()
    {
    stateSwitcher.SetState(MatchmakingMenuState.StartMatchmaking);
    }
  2. 次に、マッチメイキングをキャンセルするための以下の関数を作成します。後でこの関数を使用してマッチメイキングキャンセルリクエストを送信します。今のところ、メニューをマッチメイキングキャンセル状態に切り替えます。

    private void CancelMatchmaking(string matchTicketId)
    {
    stateSwitcher.SetState(MatchmakingMenuState.CancelMatchmaking);
    }
  3. 事前定義された Awake() 関数を以下のコードに置き換えて、リクエストが失敗したときにマッチメイキングを再開するために再試行ボタンをバインドします。

    private void Awake()
    {
    stateSwitcher.OnRetryButtonClicked = StartMatchmaking;
    }
  4. 次に、事前定義された OnEnable() 関数を以下のコードに置き換えて、メニューが表示されたときに自動的にマッチメイキングを開始します。

    private void OnEnable()
    {
    StartMatchmaking();
    }
  5. Unity エディターで、Assets/Resources/Modules/Play/MatchmakingP2P に移動し、MatchmakingP2PEssentialsAssetConfig.asset を開きます。Is ActiveIs Starter Active の両方のチェックボックスをオンにして、モジュールがスターターモードでアクティブ化されていることを確認します。

  6. 最後に、エディターでゲームをプレイします。Play Online > Quick Play からメインメニューに移動し、任意のゲームモードを選択して、Perr to Peer ボタンをクリックできるはずです。その後、メニューはマッチメイキング開始状態に切り替わります。後で、この動作を実際のマッチメイキングリクエストに置き換えます。

リソース