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

Module 5: Unreal Engine - Play test

Last updated on February 12, 2024

クラウドセーブとの間でゲームオプションをロードおよび保存するテスト


  1. プロジェクトをコンパイルして、Unreal Editor で開きます。次に、以下のシナリオに従ってゲームをプレイします。

  2. ログ出力には、次のログが表示されます。

    • クラウドセーブからゲームオプションをロードするときのログ

      LogCloudSaveEssentials: Success to get player record.
    • クラウドセーブにゲームオプションを保存するときのログ

      LogCloudSaveEssentials: Success to set player record.
  3. 管理者ポータルでプレイヤーレコードを確認することもできます。ただし、まずプレイヤー ID (ユーザー ID とも呼ぶ) を知っておく必要があります。ログインしてゲームをプレイするときに、次のログを検索してプレイヤー ID を取得できます。

    LogAccelByteOSS: Verbose: >>> GetUserAccount (DefaultInstance) was called. Args: UserId: {"id":"<You should see your Player Id here>","platformType":"","platformId":""}
  4. 次に、管理者ポータルを開きます。ダッシュボードから、[Game Management (ゲーム管理)] > [Cloud Save (クラウドセーブ)] > [Player Records (プレイヤーレコード)]に移動します。検索ボックスにプレイヤー ID を貼り付け、Enter キーを押します。その後、クラウドセーブに正常に保存されたゲームオプションレコードが表示されます。[View (表示)]ボタンをクリックすると詳細を表示できます。

  5. その後、次のようなプレイヤーレコードの詳細が表示されます。

クラウドセーブからゲームオプションを削除するテスト


前のセクションでは、ゲームオプションを設定および取得するオプションメニューウィジェットを接続しました。しかし、お気付きのように、オプションメニューウィジェットには、レコードを削除するボタンも他のユーザーインターフェイスもありません。Byte Wars のゲームデザインでは必要がないためです。したがって、このセクションではテストのみを目的として、プレイヤーレコードを削除する方法について説明します。

  1. CloudSaveSubsystem_Starter サブシステムで作成した DeletePlayerRecord() 関数を呼び出せます。必要なのは、削除するレコードキーと、レコードが正常に削除されたことをリッスンするコールバック関数を渡すことだけです。以下のサンプルコードをご覧ください。以下のコードを使用すると、プレイヤーがゲームオプションのプレイヤーレコードを削除できるようになります。プレイヤーレコードを削除するには、まずプレイヤーがゲームにログインする必要があることに注意してください。

    // Include the header file.
    #include "TutorialModules/Module-5/CloudSaveSubsystem_Starter.h"

    ...

    // Get the CloudSaveSubsystem_Starter subsystem.
    UCloudSaveSubsystem_Starter* CloudSaveSubsystem_Starter = GameInstance->GetSubsystem<UCloudSaveSubsystem_Starter>();
    ensure(CloudSaveSubsystem_Starter);

    // Send the Player Record deletion request.
    const APlayerController* PC = /* Set Player Controller here */;
    const FString RecordKeyToDelete = FString::Printf(TEXT("%s-%s"), *GAME_OPTIONS_KEY, *SOUND_OPTIONS_KEY);
    CloudSaveSubsystem_Starter->DeletePlayerRecord(PC, RecordKeyToDelete, FOnDeleteCloudSaveRecordComplete::CreateWeakLambda(this, [](bool bWasSuccessful)
    {
    UE_LOG(LogTemp, Warning, TEXT("Is Player Record Deleted: %s"), bWasSuccessful ? TEXT("True") : TEXT("False"));
    }));
  2. または、ゲーム管理者として、管理者ポータルからプレイヤーレコードを削除することもできます。管理者ポータルダッシュボードから、[Game Management (ゲーム管理)] > [Cloud Save (クラウドセーブ)] > [Player Records (プレイヤーレコード)]に移動します。検索ボックスにプレイヤー ID を貼り付け、Enter キーを押します。そうすると、そのプレイヤーのプレイヤーレコードがすべて見つかります。次に、[Delete (削除)]ボタンを押してレコードを削除します。

  3. 次に、削除を確認する必要があります。[Delete (削除)]ボタンをクリックすると、そのプレイヤーのレコードが削除されます。