PlayFabでVirtual Currencyを使用してCatalogから買い物をする
今回はUnityでのVirtual Currencyを使用してCatalogからの買い物について書きます。
PlayFabの導入部分はこちら
Virtual Currencyの取得方法はこちら
PlayFabのCatalogとは
PlayFab内の仮想アイテムを定義するもので、PlayerがItemを購入するために必要になります。
CatalogにはItemの購入(Virtual Currency/Real Money)、セールス機能が付いたItemショップStores、ランダムな結果を出力するDrop Tablesなど様々な機能があります。
詳しくは公式のCatalogsドキュメントをみると何ができるかが書いてあります。
Catalogの作成とItemの作成
PlayFabのEconomyからCatalogsのタブを選択し、NEW CATALOGを選択します。
入力する項目は2つです。
New Catalog | |
---|---|
Catalog version* | Catalogの名前 |
Make Primary catalog | チェックボックス |
Make Primary catalogはTrueにすることで、作成するCatalogを主要なバージョンのCatalogとして設定することができます。 これは後で変更することもできます。
次にItemを作成しCatalogに追加します。
PlayFabのEconomyからCatalogsのタブを選択し、先ほど作成したCatalogの名前を選択します。その後NEW ITEMを選択することでItemを新規で作成することができます。
Itemには次の項目を設定することができます。
New Catalog Item | |
---|---|
Item ID* | Itemの内部ID |
Item class | Catalog管理用の識別子 |
Tags | Catalog管理用のタグ |
Item image URL | Itemの画像URL |
Display name | Itemの表示名 |
Description | Itemの説明 |
Is stackble | ItemがInventoryに1つのみ登録され数量が増える |
Is tradable | Trade APIでItemの交換を可能にする |
is a token for character crearion | GrantCharacterToUserなどで使用するTokenかどうか |
CONSUMABLE | 下で説明 |
PRICES | 使用するVirtual Currency(RM)と価格を設定 |
CUSTOM DATA | 自由に設定できるData |
CONSUMABLEは”Consumable”を選択することでItemを消費する設定になり、また次のように設定できます。
Consumable | |
---|---|
By count | 使用できる個数 |
By time | 使用期間 |
Time group name | 消費時間を共有するグループ |
UnityでCatalogを取得する
UnityではPlayFabClientAPI.GetCatalogItems()を使用することでCatalogを取得することができます。 例えば次のようなコードです。
using PlayFab; public void GetCatalogItems() { PlayFabClientAPI.GetCatalogItems(new GetCatalogItemsRequest(), result => { var itemList = result.Catalog; }, error => Debug.Log(error.GenerateErrorReport())); }
GetCatalogItems()を使用してGetCatalogItemsRequest()に何も指定しない場合にはPrimaryのCatalogが呼ばれます。 指定したCatalogを呼びたい場合はGetCatalogItemsRequest()のCatalogVersionを指定してあげることで呼ぶことができます。
UnityでVirtual Currencyを使用してCatalogから買い物をする
UnityではPlayFabClientAPI.PurchaseItem()を使用することでCatalogからItemを購入することができます。 例えば次のようなコードです。
public void BuyItem() { PlayFabClientAPI.PurchaseItem(new PurchaseItemRequest { ItemId = "itemID", VirtualCurrency = "**", Price = *** },result => { },error => Debug.Log(error.GenerateErrorReport())); }
PurchaseItemRequest内のItemIDには作成したItem IDを、VirtualCurrencyには購入するために使うVirtualCurrencyの通貨コードを、Priceには価格を入れることで買い物が行われます。
GetCatalogItems()と同様でCatalogVersionを指定しなければ最新のPrimaryのCatalogが呼ばれます。