カスタムマッチメイキングメニューの追加 - ゲームクライアント統合 - (Unity モジュール)
注釈:本資料はAI技術を用いて翻訳されています。
メニューの内容
このチュートリアルでは、サンプルマッチメイキングバックエンドサービスでマッチメイキングを実行するために使用するメニューの準備方法を説明します。メニューはリソースセクションで入手でき、以下のファイルで構成されています。
CustomMatchmakingMenu_Starter: サンプルマッチメイキングバックエンドサービスへの WebSocket 接続を開始してマッチメイキングを開始するために使用される C# クラス。- CS ファイル:
Assets/Resources/Modules/CustomMatchmaking/Scripts/UI/CustomMatchmakingMenu_Starter.cs - Prefab ファイル:
Assets/Resources/Modules/CustomMatchmaking/Prefabs/CustomMatchmakingMenu_Starter.prefab
- CS ファイル:
このメニューがどのように構成されているかの詳細を見てみましょう。
カスタムマッチメイキングメニュー
カスタムマッチメイキングメニューには、単一のボタンが表示されます。クリックすると、ゲームはサンプルマッチメイキングバックエンドサービスへの WebSocket 接続を開始してマッチメイキングを開始します。

このメニューには、マッチメイキングの状態(読み込み中やエラーメッセージなど)に基づいてメッセージを表示するために使用される AccelByteWarsWidgetSwitcher というカスタムコンポーネントがあります。このメニューで使用される UI コンポーネントの宣言は以下の通りです。
[SerializeField] private AccelByteWarsWidgetSwitcher widgetSwitcher;
[SerializeField] private Button startMatchmakingButton;
[SerializeField] private Button backButton;
UI の準備
このセクションでは、チュートリアルに沿って進められるように、カスタムマッチメイキングメニューを準備する方法を学びます。
-
CustomMatchmakingMenu_Starterクラスを開きます。次に、マッチメイキングを開始する新しい関数を作成します。後で、サンプルマッチメイキングバックエンドサービスへの WebSocket 接続を開くラッパーを実装します。今のところ、以下のコードを追加して、マッチメイキングがリクエストされたことを示すメッセージとともに、メニューの状態を読み込み状態に切り替えます。private void StartMatchmaking()
{
widgetSwitcher.LoadingMessage = CustomMatchmakingModels.RequestMatchmakingMessage;
widgetSwitcher.EnableCancelButton(false);
widgetSwitcher.SetWidgetState(WidgetState.Loading);
} -
次に、マッチメイキングをキャンセルする新しい関数を作成します。後で、サンプルマッチメイキングバックエンドサービスからの WebSocket 接続を閉じるラッパーを実装します。今のところ、以下のコードを追加して、マッチメイキングがキャンセルされたことを示すメッセージとともに、メニューの状態を読み込み状態に切り替えます。
private void CancelMatchmaking()
{
widgetSwitcher.LoadingMessage = CustomMatchmakingModels.CancelMatchmakingMessage;
widgetSwitcher.EnableCancelButton(false);
widgetSwitcher.SetWidgetState(WidgetState.Loading);
} -
マッチメイキングが進行中でキャンセルされていない場合、ユーザーがメニューを閉じられないようにする必要があります。そのため、メニューの状態が読み込み状態の場合に戻るボタンを非表示にする新しいヘルパー関数を以下のように作成します。
private void OnSwitcherStateChanged(WidgetState state)
{
backButton.gameObject.SetActive(state != WidgetState.Loading);
} -
次に、Unity の
OnEnable()関数を作成し、以下のコードを追加して、カスタムマッチメイキングメニューが表示されたときに、先ほど作成した関数をそれぞれのボタンとイベントにバインドします。private void OnEnable()
{
startMatchmakingButton.onClick.AddListener(StartMatchmaking);
backButton.onClick.AddListener(MenuManager.Instance.OnBackPressed);
widgetSwitcher.OnRetryButtonClicked += StartMatchmaking;
widgetSwitcher.OnCancelButtonClicked += CancelMatchmaking;
widgetSwitcher.OnStateChanged += OnSwitcherStateChanged;
widgetSwitcher.SetWidgetState(WidgetState.Not_Empty);
} -
次に、Unity の
OnDisable()関数を作成し、以下のコードを追加して、カスタムマッチメイキングメニューが閉じられたときに、先ほど作成した関数のバインドを解除します。private void OnDisable()
{
startMatchmakingButton.onClick.RemoveAllListeners();
backButton.onClick.RemoveAllListeners();
widgetSwitcher.OnRetryButtonClicked -= StartMatchmaking;
widgetSwitcher.OnCancelButtonClicked -= CancelMatchmaking;
widgetSwitcher.OnStateChanged -= OnSwitcherStateChanged;
} -
次に、Unity エディターに戻り、
Assets/Resources/Modules/CustomMatchmakingに移動して、CustomMatchmakingAssetConfig.assetを開きます。次に、Is ActiveチェックボックスとIs Starter Activeチェックボックスにチェックを入れて、スターターモードでモジュールを有効化します。この設定により、先ほど変更したカスタムマッチメイキングメニューを含む、カスタムマッチメイキングスターターファイルが有効化されます。 -
最後に、Unity エディターでゲームをプレイしてみてください。Custom Matchmaking メニューに移動し、Start Matchmaking ボタンをクリックすると、メニューが読み込み状態に遷移し、マッチメイキングがリクエストされたことを示すメッセージが表示されます。
リソース
-
このチュートリアルセクションで使用されるファイルは、Unity Byte Wars GitHub リポジトリで入手できます。