GS2-Dictionary SDK for Game Engine API リファレンス

ゲームエンジン向け GS2-Dictionary SDK の モデルの仕様 と API のリファレンス

モデル

EzEntry

ゲームプレイヤーが入手したエントリー

ゲームプレイヤーが収集した図鑑エントリーの1件を表します。各エントリーは EntryModel に対応し、入手日時を記録します。所持状態は「存在する(収集済み)/ 存在しない」の2値で管理され、数量の概念はありません。

有効化条件必須デフォルト値の制限説明
entryIdstring
~ 1024文字エントリー GRN
※ サーバーが自動で設定
userIdstring~ 128文字ユーザーID
namestring
~ 128文字エントリーモデル名
エントリーモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
acquiredAtlong
現在時刻入手日時
このエントリーがゲームプレイヤーによって初めて収集された日時です。登録時に現在時刻が自動的に設定され、その後変更することはできません。

EzLike

お気に入りに登録したエントリー

ゲームプレイヤーがお気に入り(いいね)に登録した図鑑エントリーを表します。プレイヤーが図鑑内の特定のエントリーをブックマークしてすぐにアクセスできるようにします。各お気に入りは EntryModel を名前で参照し、ユーザーごとに一意です。同じエントリーを重複してお気に入りに登録することはできません。

有効化条件必須デフォルト値の制限説明
likeIdstring
~ 1024文字お気に入りエントリー GRN
※ サーバーが自動で設定
userIdstring~ 128文字ユーザーID
namestring
~ 128文字エントリーモデル名
エントリーモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。

EzEntryModel

エントリーモデル

エントリーモデルは、GS2-Dictionary において図鑑に記録可能な対象を定義するマスターデータです。
各エントリーモデルは、モンスターやアイテム、アバターパーツなど、図鑑に記録されるエンティティの種類を表します。

エントリーの所持状態は「記録済み / 未記録」の2値で管理され、同一エントリーモデルに対して数量やスタックの概念はありません。

有効化条件必須デフォルト値の制限説明
namestring
~ 128文字エントリーモデル名
metadatastring~ 2048文字メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。

EzConfig

コンフィグ設定

分散トランザクション実行時にトランザクション変数に適用されるキーと値のペアです。実行時にトランザクションパラメータ内のプレースホルダー値を動的に置換できます。

有効化条件必須デフォルト値の制限説明
keystring
~ 64文字名前
トランザクションパラメータ内のプレースホルダーキーとして使用される変数名です。トランザクションテンプレートで定義されたプレースホルダーと一致する必要があります。
valuestring~ 51200文字
トランザクション実行時にプレースホルダーキーに代入する値です。トランザクションパラメータ内の対応するプレースホルダーがこの値に置換されます。

メソッド

getEntryModel

名前を指定して収集アイテム定義を取得する

名前を指定して、エントリーモデルを1件取得します。
プレイヤーが図鑑画面でエントリーをタップしたときに、そのアイテムの説明やメタデータなどの詳細を表示する際に使います。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
entryNamestring
~ 128文字エントリーモデル名

Result

説明
itemEzEntryModelエントリーモデル

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).EntryModel(
        entryName: "entry-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).EntryModel(
        entryName: "entry-0001"
    );
    var future = domain.ModelFuture();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->EntryModel(
        "entry-0001" // entryName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).EntryModel(
        entryName: "entry-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).EntryModel(
        entryName: "entry-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->EntryModel(
        "entry-0001" // entryName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Dictionary::Model::FEntryModel> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listEntryModels

収集アイテム定義の一覧を取得する

このネームスペースに登録されているすべてのエントリーモデル(収集可能なアイテムの種類)を取得します。
エントリーモデルは、プレイヤーのコレクションに登場するアイテムを定義します。たとえば、図鑑のモンスター、アルバムのキャラクター、実績などです。
コレクション画面や図鑑画面で、収集可能なアイテムの全リストを表示する際に使います。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。

Result

説明
itemsList<EzEntryModel>エントリーモデルのリスト

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    );
    var items = await domain.EntryModelsAsync(
    ).ToListAsync();
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    );
    var it = domain.EntryModels(
    );
    List<EzEntryModel> items = new List<EzEntryModel>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    );
    const auto It = Domain->EntryModels(
    );
    TArray<Gs2::UE5::Dictionary::Model::FEzEntryModelPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
値の変更イベントハンドリング
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeEntryModels(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeEntryModels(callbackId);
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeEntryModels(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeEntryModels(callbackId);
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->SubscribeEntryModels(
        []() {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    Domain->UnsubscribeEntryModels(CallbackId);

getEntry

プレイヤーが特定のエントリーを収集済みか確認する

エントリーモデル名を指定して、プレイヤーが特定の収集アイテムを獲得済みかどうかを確認します。
図鑑のアイテム詳細画面で「収集済み」「未収集」のステータスを表示する際に使います。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
gameSessionGameSession
GameSession
entryModelNamestring
~ 128文字エントリーモデル名
エントリーモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。

Result

説明
itemEzEntryエントリー

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Entry(
        entryModelName: "entry-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Entry(
        entryModelName: "entry-0001"
    );
    var future = domain.ModelFuture();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->Entry(
        "entry-0001" // entryModelName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Entry(
        entryModelName: "entry-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Entry(
        entryModelName: "entry-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->Entry(
        "entry-0001" // entryModelName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Dictionary::Model::FEntry> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

getEntryWithSignature

改ざん防止の署名付きでエントリーを取得する

データが改ざんされていないことを証明する暗号署名と一緒にエントリーを取得します。
プレイヤーが特定のコレクションエントリーを本当に所持していることを外部サーバーで検証したい場合に使います。
たとえば、コレクションの進捗に応じてカスタムサーバーから報酬を付与する場合などに便利です。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
gameSessionGameSession
GameSession
entryModelNamestring
~ 128文字エントリーモデル名
エントリーモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
keyIdstring“grn:gs2:{region}:{ownerId}:key:default:key:default”~ 1024文字暗号鍵 GRN

Result

説明
itemEzEntryエントリー
bodystring署名対象のエントリー情報
signaturestring署名

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Entry(
        entryModelName: "entry-0001"
    );
    var result = await domain.GetEntryWithSignatureAsync(
        keyId: "key-0001"
    );
    var item = await result.ModelAsync();
    var body = result.Body;
    var signature = result.Signature;
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Entry(
        entryModelName: "entry-0001"
    );
    var future = domain.GetEntryWithSignatureFuture(
        keyId: "key-0001"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.ModelFuture();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    var body = future.Result.Body;
    var signature = future.Result.Signature;
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->Entry(
        "entry-0001" // entryModelName
    );
    const auto Future = Domain->GetEntryWithSignature(
        "key-0001" // keyId
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();
    const auto Body = Result->Body;
    const auto Signature = Result->Signature;

listEntries

プレイヤーが収集済みのエントリー一覧を取得する

プレイヤーがこれまでに獲得したエントリー(収集アイテム)の一覧を取得します。
プレイヤーがアンロックしたアイテムを表示する、コレクション画面や図鑑画面の構築に使います。
エントリーモデルの全リストと比較することで、収集済み・未収集のアイテムを表示できます。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
gameSessionGameSession
GameSession
limitint301 ~ 10000データの取得件数
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン

Result

説明
itemsList<EzEntry>エントリーのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.EntriesAsync(
    ).ToListAsync();
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.Entries(
    );
    List<EzEntry> items = new List<EzEntry>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->Entries(
    );
    TArray<Gs2::UE5::Dictionary::Model::FEzEntryPtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
値の変更イベントハンドリング
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeEntries(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeEntries(callbackId);
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeEntries(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeEntries(callbackId);
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->SubscribeEntries(
        []() {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    Domain->UnsubscribeEntries(CallbackId);

addLikes

エントリーをお気に入りに追加する

1つ以上のエントリーをプレイヤーのお気に入りとして登録します。
複数のエントリー名を一度にまとめて指定できます。
すでにお気に入りに登録済みのエントリーはスキップされます(エラーにはなりません)。
コレクション画面でプレイヤーが「お気に入り」ボタンをタップしたときに使います。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
gameSessionGameSession
GameSession
entryModelNamesList<string>[]0 ~ 100 itemsエントリーモデル名のリスト

Result

説明
itemsList<EzLike>登録したお気に入りエントリーのリスト

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.AddLikesAsync(
        entryModelNames: new List<string> {
            "entry-0001",
            "entry-0002",
            "entry-0003",
        }
    );
    var item = await result.ModelAsync();
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.AddLikesFuture(
        entryModelNames: new List<string> {
            "entry-0001",
            "entry-0002",
            "entry-0003",
        }
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var future2 = future.Result.ModelFuture();
    yield return future2;
    if (future2.Error != null)
    {
        onError.Invoke(future2.Error, null);
        yield break;
    }
    var result = future2.Result;
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->AddLikes(
        []
        {
            auto v = TOptional<TArray<FString>>();
            v->Add("entry-0001");
            v->Add("entry-0002");
            v->Add("entry-0003");
            return v;
        }() // entryModelNames
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }

    // obtain changed values / result values
    const auto Future2 = Future->GetTask().Result()->Model();
    Future2->StartSynchronousTask();
    if (Future2->GetTask().IsError())
    {
        return Future2->GetTask().Error();
    }
    const auto Result = Future2->GetTask().Result();

deleteLikes

エントリーをお気に入りから外す

プレイヤーのお気に入りリストから1つ以上のエントリーを削除します。
複数のエントリー名を一度にまとめて指定できます。
コレクション画面でプレイヤーが「お気に入り解除」ボタンをタップしたときに使います。
エントリーの収集状態には影響しません。収集済みのままです。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
gameSessionGameSession
GameSession
entryModelNamesList<string>[]0 ~ 100 itemsエントリーモデル名のリスト

Result

説明
itemsList<EzLike>削除したお気に入りエントリーのリスト

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var result = await domain.DeleteLikesAsync(
        entryModelNames: new List<string> {
            "entry-0001",
            "entry-0002",
            "entry-0003",
        }
    );
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var future = domain.DeleteLikesFuture(
        entryModelNames: new List<string> {
            "entry-0001",
            "entry-0002",
            "entry-0003",
        }
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto Future = Domain->DeleteLikes(
        []
        {
            auto v = TOptional<TArray<FString>>();
            v->Add("entry-0001");
            v->Add("entry-0002");
            v->Add("entry-0003");
            return v;
        }() // entryModelNames
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();

getLike

特定のエントリーがお気に入りかどうかを確認する

プレイヤーが特定のエントリーをお気に入り登録しているかどうかを確認します。
図鑑のアイテム詳細画面で「お気に入り済み」アイコンやハイライトを表示する際に使います。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
gameSessionGameSession
GameSession
entryModelNamestring
~ 128文字エントリーモデル名
エントリーモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。

Result

説明
itemEzLikeお気に入りエントリー

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Like(
        entryModelName: "entry-0001"
    );
    var item = await domain.ModelAsync();
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Like(
        entryModelName: "entry-0001"
    );
    var future = domain.ModelFuture();
    yield return future;
    var item = future.Result;
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->Like(
        "entry-0001" // entryModelName
    );
    const auto Future = Domain->Model();
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
値の変更イベントハンドリング
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Like(
        entryModelName: "entry-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    ).Like(
        entryModelName: "entry-0001"
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.Subscribe(
        value => {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    domain.Unsubscribe(callbackId);
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    )->Like(
        "entry-0001" // entryModelName
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->Subscribe(
        [](TSharedPtr<Gs2::Dictionary::Model::FLike> value) {
            // 値が変化した時に呼び出される
            // value には変更後の値が渡ってくる
        }
    );

    // イベントハンドリングを停止
    Domain->Unsubscribe(CallbackId);

listLikes

プレイヤーのお気に入りエントリー一覧を取得する

プレイヤーがお気に入り登録したエントリーの一覧を取得します。
お気に入りは収集とは別に管理されます。エントリーを収集しても自動的にお気に入りにはなりません。
コレクション画面の「お気に入り」タブを表示し、プレイヤーが気になるアイテムにすぐアクセスできるようにする際に使います。

Request

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
gameSessionGameSession
GameSession
limitint301 ~ 1000データの取得件数
pageTokenstring~ 1024文字データの取得を開始する位置を指定するトークン

Result

説明
itemsList<EzLike>お気に入りエントリーのリスト
nextPageTokenstringリストの続きを取得するためのページトークン

実装例

    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var items = await domain.LikesAsync(
    ).ToListAsync();
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    var it = domain.Likes(
    );
    List<EzLike> items = new List<EzLike>();
    while (it.HasNext())
    {
        yield return it.Next();
        if (it.Error != null)
        {
            onError.Invoke(it.Error, null);
            break;
        }
        if (it.Current != null)
        {
            items.Add(it.Current);
        }
        else
        {
            break;
        }
    }
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    const auto It = Domain->Likes(
    );
    TArray<Gs2::UE5::Dictionary::Model::FEzLikePtr> Result;
    for (auto Item : *It)
    {
        if (Item.IsError())
        {
            return false;
        }
        Result.Add(Item.Current());
    }
値の変更イベントハンドリング
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeLikes(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeLikes(callbackId);
    var domain = gs2.Dictionary.Namespace(
        namespaceName: "namespace-0001"
    ).Me(
        gameSession: GameSession
    );
    
    // イベントハンドリングを開始
    var callbackId = domain.SubscribeLikes(
        () => {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    domain.UnsubscribeLikes(callbackId);
    const auto Domain = Gs2->Dictionary->Namespace(
        "namespace-0001" // namespaceName
    )->Me(
        GameSession
    );
    
    // イベントハンドリングを開始
    const auto CallbackId = Domain->SubscribeLikes(
        []() {
            // リストの要素が変化した時に呼び出される
        }
    );

    // イベントハンドリングを停止
    Domain->UnsubscribeLikes(CallbackId);