次の方法で共有


コレクション

Important

エコノミー v2 が一般提供になりました。 サポートとフィードバックについては、PlayFab フォーラムをご利用ください。

Economy v2 インベントリ サービスでは、インベントリの柔軟性を高め、さらなるニーズに応えることのできる、コレクションの概念が導入されています。 コレクションは、1 人のプレイヤー/PlayerId が複数のインベントリを保有できるメカニズムです。 この機能を使用すると、同じプレイヤーのキャラクターごとに複数のインベントリを管理したり、プラットフォームごとに個別のインベントリを作成したりできます。

インベントリ API 呼び出しは、アクションを実行するコレクション/インベントリを指定する CollectionId パラメーターを受け取ることができます。 新しいコレクションを作成するには、未使用の CollectionId にアイテム/スタックを追加します。

インベントリ コレクションの管理

GetInventoryCollectionIds

GetInventoryCollectionIds API を使用すると、特定のプレイヤーの CollectionId の一覧を取得できます。 プレイヤーは、自分の ID の一覧にしかアクセスできません。 タイトル エンティティでは、Entity パラメーターを渡して、どのプレイヤーのインベントリにアクセスしたいかを示すことができます。

GetInventoryCollectionIds 要求の一例:

{
  "Entity": {
    "Type": "title_player_account",
    "Id": "ABCD12345678"
  },
  "Count": 15,
  "ContinuationToken": "abc="
}

この要求は、次の応答を返します:

{
  "data": {
  "CollectionIds": [
    "default".
    "main_character"
    ]
  }
}

継続トークン

検索応答から返される ContinuationToken フィールドは、ページ分割された複数の結果を扱う場合にインベントリ要求に含めて渡すことができます。

新しいインベントリ コレクションの追加

プレイヤーの新しいコレクションを作成するには、新しい CollectionId を使用して書き込み要求を実行します。

たとえば、次の AddInventoryItems 要求では collectionId main_character を使用します。

{
    "Entity": {
        "Type": "title_player_account",
        "Id": "ABCD12345678"
    },
    "CollectionId": "main_character",
    "Item": {
        "Id": "0b440353-bdbc-48d8-8873-f0988c1f9d8b",
    },
    "Amount": 10,
}

上記の要求では、新しいインベントリ コレクションを作成し、5 つのアイテムを追加するか、既に存在する場合は既存の main_character インベントリ コレクションに 5 つ追加します。

DeleteInventoryCollection

DeleteInventoryCollectionId API では、削除する CollectionId を定義できます。 削除は非同期操作であり、大きいコレクションでは時間がかかる場合があります。 削除操作が完了するまで、コレクションを再作成することはできません。

DeleteInventoryCollectionIds 要求の一例:

{
  "Entity": {
    "Type": "title_player_account",
    "Id": "ABCD12345678"
  },
  "CollectionId": "main_character"
}

注意

現時点では、API がインベントリ コレクションを削除する唯一の方法です。 ゲーム マネージャーは現在、新規および既存のコレクションのアイテムの表示および追加にしか使用できません。 今後、他の機能も追加される予定です。

ExecuteInventoryOperations API

ExecuteInventoryOperations API で CollectionId パラメーターを設定できます。 このパラメーターを使用すると、操作を実行するコレクションを定義できます。

スタックを使用した ExecuteInventoryOperations リクエストの例:

{
    "Entity": {
        "Type": "title_player_account",
        "Id": "ABCD12345678"
    },
    "CollectionId": "main_character",
    "Operations": [
        {
            "Update": {
                "Item" {
                    "Id": "0b440353-bdbc-48d8-8873-f0988c1f9d8b",
                    "Amount": 10
                }
            }
        },
        {
            "Subtract": {
                "Item" {
                    "Id": "0b440353-bdbc-48d8-8873-f0988c1f9d8b",
                },
                "Amount": 5
            }
        }
    ]
}