プレイヤーのインベントリ
Use the SDK to manage player inventory items including adding, updating, and deleting items.
読み終わるまでの所要時間 3 分最終更新 21日前
PlayerInventoryGetInventoryAsync
現在サインインしているプレイヤーに関連付けられている現在のインベントリアイテムインスタンスを取得します。 このメソッドにはGetInventoryOptionsPlayersInventoryItemPlayersInventoryItem次に示すこのサンプルコードは、プレイヤーの// Optional, defaults to 20GetInventoryOptions options = new GetInventoryOptions{ ItemsPerFetch = 5};GetInventoryResult inventoryResult = await EconomyService.Instance.PlayerInventory.GetInventoryAsync(options);List<PlayersInventoryItem> firstFiveItems = inventoryResult.PlayersInventoryItems;// do something with your itemsif (inventoryResult.HasNext) { inventoryResult = await inventoryResult.GetNextAsync(5); List<PlayersInventoryItem> nextFiveItems = inventoryResult.PlayersInventoryItems; // do something with your items}
SWORDこれらのメソッドはGetInventoryOptions options = new GetInventoryOptions{ InventoryItemIds = new List<string>() { "SWORD" }};GetInventoryResult inventoryResult = await EconomyService.Instance.PlayerInventory.GetInventoryAsync(options);List<PlayersInventoryItem> listOfItems = inventoryResult.PlayersInventoryItems;// ... etc
GetInventoryResultGetInventoryOptions
GetInventoryAsync- : 文字列のリスト。デフォルトは
PlayersInventoryItemIdsです。取得しようとするプレイヤーのインベントリにあるアイテムのnullID。PlayersInventoryItem - : 文字列のリスト。デフォルトは
InventoryItemIdsです。取得しようとするアイテムの設定 ID。null - : 整数。デフォルトは 20 です。これを使用して、呼び出しごとにフェッチするアイテムの最大件数を 1 から 100 の間で設定します。
ItemsPerFetch
GetInventoryResult
GetInventoryResult- : 現在フェッチされたアイテムが含まれる
PlayersInventoryItems。List<PlayersInventoryItem>
- : このメソッドは、より多くの結果を非同期でフェッチします。これには 1 つの任意のパラメーターがあり、フェッチされる結果の数を制限できます (1 から 100 を設定でき、デフォルトは 20 です)。これによって新しい結果が返され、元のアイテムと新しくフェッチされたアイテムの両方が
GetNextAsync(int itemsToFetch = 20)リストに含められます。それ以上フェッチする結果がなくなると、結果はPlayersInventoryItemsになります。null
AddInventoryItemAsync
プレイヤーのインベントリにアイテムを追加します。 このメソッドにはAddInventoryItemOptionsPlayersInventoryItemIdnullPlayersInventoryItemDictionary<string, object> instanceData = new Dictionary<string, object>{ { "rarity", "purple" }};AddInventoryItemOptions options = new AddInventoryItemOptions{ PlayersInventoryItemId = "customID", InstanceData = instanceData };PlayersInventoryItem createdInventoryItem = await EconomyService.Instance.PlayerInventory.AddInventoryItemAsync("SWORD", options);
AddInventoryItemOptions
AddInventoryItemAsync- : 文字列。デフォルトは
PlayersInventoryItemIdです。作成されるnullの ID を設定します。指定されない場合は生成されます。PlayersInventoryItem - :
InstanceData。インスタンスデータ のディクショナリを設定するために使用されます。Dictionary<string, object>
DeletePlayersInventoryItemAsync
プレイヤーのインベントリからアイテムを削除します。 このメソッドには、書き込みロックの設定に使用されるDeletePlayersInventoryItemOptionsDeletePlayersInventoryItemOptions options = new DeletePlayersInventoryItemOptions{ WriteLock = "writeLock"};EconomyService.Instance.PlayerInventory.DeletePlayersInventoryItemAsync("playersInventoryItemID", options);
DeletePlayersInventoryItemOptions
DeletePlayersInventoryItemAsync- : 文字列。デフォルトは
WriteLockです。これを使用して、楽観的コンカレンシーのための書き込みロックを設定します。書き込みロック を参照してください。null
UpdatePlayersInventoryItemAsync
アイテムを新しいインスタンスデータで更新します。 更新されたプレイヤーインベントリアイテムを返します。 このメソッドには、書き込みロックの設定に使用されるUpdatePlayersInventoryItemOptionsDictionary<string, object> instanceData = new Dictionary<string, object>{ { "rarity", "purple" }};UpdatePlayersInventoryItemOptions options = new UpdatePlayersInventoryItemOptions{ WriteLock = writeLock };PlayersInventoryItem playersInventoryItem = await EconomyService.Instance.PlayerInventory.UpdatePlayersInventoryItemAsync("playersInventoryItemID", instanceData, options);
UpdatePlayersInventoryItemOptions
UpdatePlayersInventoryItemAsync- : 文字列。デフォルトは
WriteLockです。これを使用して、楽観的コンカレンシーのための書き込みロックを設定します。書き込みロック を参照してください。null
PlayersInventoryItem
PlayersInventoryItem- : プレイヤーのインベントリ内のこの一意インベントリアイテムの ID。
PlayersInventoryItemId - : このインベントリアイテムの設定 ID。
InstanceItemId - : このプレイヤーインベントリアイテムに関連付けられているインスタンスデータ。
InstanceData - : このプレイヤーインベントリアイテムに
InstanceDataDeserializableとして関連付けられているインスタンスデータ。InstanceDataDeserializable の使用 を参照してください。IDeserializable - : このプレイヤーのインベントリアイテムの現在の
WriteLock文字列。writelock - : このプレイヤーのインベントリアイテムが作成された日付。これは EconomyDate オブジェクトです。
Created - : このプレイヤーのインベントリアイテムが変更された日付。これは EconomyDate オブジェクトです。
Modified
GetItemDefinitionAsync
このメソッドは、このプレイヤーのインベントリアイテムの設定 (タイプInventoryItemDefinitionPlayersInventoryItem playersInventoryItem = // ... fetch the players inventory itemInventoryItemDefinition itemDefinition = playersInventoryItem.GetItemDefinitionAsync();
PlayersInventoryItemUpdated
このイベントをサブスクライブすると、SDK がプレイヤーのインベントリの特定のアイテムを更新したときに通知を受け取ることができます。サブスクライバーには、更新されたアイテムのplayersInventoryItemEconomyService.Instance.PlayerInventory.PlayersInventoryItemUpdated += playersInventoryItemID => { Debug.Log($"The players inventory item that was updated was {playersInventoryItemID}");};
InstanceDataDeserializable の使用
InstanceDataDeserializableobjectIDeserializableInstanceDataDeserializable以下を実行してインスタンスデータをデシリアライズできます。class MyInstanceData { public int Durability; public string Rarity; }MyInstanceData myInstanceData = new MyInstanceData() { Durability = 100, Rarity = "purple"};PlayersInventoryItem updatedItem = await EconomyService.Instance.PlayerInventory.UpdatePlayersInventoryItemAsync("playersInventoryItemId", myInstanceData);
MyInstanceData fetchedInstanceData = updatedItem.InstanceData.GetAs<MyInstanceData>();int durability = fetchedInstanceData.Durability;string rarity = fetchedInstanceData.Rarity;