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

すべてを統合する - セッション入門 - (Unity モジュール)

Last updated on February 4, 2026

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

UI を接続してセッションの作成、退出、現在のセッションステータスの表示を行う

  1. CreateSessionMenu_Starter クラスを開き、作成したラッパーを保存する変数を定義します。

    private SessionEssentialsWrapper_Starter sessionEssentialsWrapper;
  2. CreateSession() 関数を以下のコードに置き換えます。この関数は新しいセッションを作成するリクエストを送信します。セッションテンプレート名、参加可能性、タイプなどのセッションリクエストの詳細は、AccelByteWarsOnlineSessionModels クラスのヘルパー関数である GetGameSessionRequestModel() から取得されます。

    private async UniTask CreateSession()
    {
    if (!await AccelByteWarsOnlineSession.OnValidateToStartPartyGameSession.Invoke())
    {
    return;
    }

    SessionV2GameSessionCreateRequest request =
    AccelByteWarsOnlineSessionModels.GetGameSessionRequestModel(InGameMode.None, GameSessionServerType.None);
    if (request == null)
    {
    widgetSwitcher.ErrorMessage = InvalidSessionTypeMessage;
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Error);
    return;
    }

    widgetSwitcher.LoadingMessage = CreatingSessionMessage;
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Loading);

    sessionEssentialsWrapper.CreateGameSession(request, OnCreateSessionComplete);
    }
  3. セッションが作成されたときに処理する新しいコールバック関数を作成します。この関数は作成されたセッション ID を表示し、メニューを成功状態に切り替えます。

    private void OnCreateSessionComplete(Result<SessionV2GameSession> result)
    {
    if (result.IsError)
    {
    widgetSwitcher.ErrorMessage = result.Error.Message;
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Error);
    return;
    }

    sessionIdText.text = result.Value.id;
    createSessionPanel.gameObject.SetActive(false);
    sessionResultPanel.gameObject.SetActive(true);
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Not_Empty);
    }
  4. LeaveSession() 関数を以下のコードに置き換えます。この関数は現在アクティブなセッションから退出するリクエストを送信します。

    private void LeaveSession()
    {
    widgetSwitcher.LoadingMessage = LeavingSessionMessage;
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Loading);

    sessionEssentialsWrapper.LeaveGameSession(sessionIdText.text, OnLeaveSessionComplete);
    }
  5. セッション退出リクエストが完了したときに処理する以下の関数を作成します。この関数はメニューをデフォルト状態に戻し、セッション作成ボタンを表示します。

    private void OnLeaveSessionComplete(Result result)
    {
    if (result.IsError)
    {
    widgetSwitcher.ErrorMessage = result.Error.Message;
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Error);
    return;
    }

    createSessionPanel.gameObject.SetActive(true);
    sessionResultPanel.gameObject.SetActive(false);
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Not_Empty);
    }
  6. 最後に、OnEnable() 関数を以下のコードに置き換えます。これはラッパーを初期化し、最後のセッションがあれば表示します。

    private void OnEnable()
    {
    // Reset to default state.
    createSessionPanel.gameObject.SetActive(true);
    sessionResultPanel.gameObject.SetActive(false);
    widgetSwitcher.SetWidgetState(AccelByteWarsWidgetSwitcher.WidgetState.Not_Empty);

    sessionEssentialsWrapper ??= TutorialModuleManager.Instance.GetModuleClass<SessionEssentialsWrapper_Starter>();
    if (!sessionEssentialsWrapper)
    {
    return;
    }

    // Show the last session result if any.
    if (AccelByteWarsOnlineSession.CachedSession != null)
    {
    OnCreateSessionComplete(Result<SessionV2GameSession>.CreateOk(AccelByteWarsOnlineSession.CachedSession));
    }
    }

リソース