MoneyStore(GS2 UIKit for Unity) のサンプル

GS2 UIKit for Unity を使用した GS2-Money + GS2-Showcase の機能実装サンプルの紹介

課金通貨の販売機能を実装します。

リポジトリ

https://github.com/gs2io/gs2-uikit-for-unity-sample/tree/main/MoneyStore

GS2-Deploy テンプレート

https://github.com/gs2io/gs2-uikit-for-unity-sample/blob/main/MoneyStore/initialize_money_store_template.yaml

プロジェクト内容

img.png

プロジェクトを開くと上記の通りになります。

img_1.png

実行すると、こちらのように販売されている商品の一覧が表示されます。

「¥100 x100」の「Buy」をクリックします。

img_2.png

残高が 100 になりました。 Editor では表示されませんが、iOS や Android で実行すると決済シーケンスが挟まります。

プロジェクトの解説

img_3.png

シーンのヒエラルキーに注目してください。

Canvas/MoneyStoreWindow/Wallet

課金通貨の残高を表示しています。

Moneyのサンプル で解説していますので、そちらを参照ください。

Canvas/MoneyStoreWindow/Store

img_4.png

Gs2ShowcaseShowcaseContext

この GameObject 以下のノードで取り扱う GS2-Showcase の陳列棚を指定しています。

img_6.png img_5.png

今回は、GS2-Showcase の showcase-0001 というネームスペースの GenStore という名前の陳列棚を指定しています。

Gs2ShowcaseShowcaseFetcher

Gs2ShowcaseShowcaseContext で指定した陳列棚の情報を取得します。

Canvas/MoneyStoreWindow/Store/…/Content

img_7.png

Gs2ShowcaseDisplayItemList

Gs2ShowcaseShowcaseFetcher で取得した陳列棚に陳列された商品を指定されたプレハブに割り当てて生成します。 Maximum Items にはプレハブを生成する最大数を指定します。

img_8.png

今回は子ノードにいる DisplayItem をプレハブとして指定しています。 フレハブとして指定された GameObject がシーン内にある場合、その GameObject は無効化され、それ以外に Maximum Items で指定された数だけ GameObject が生成されます。

Canvas/MoneyStoreWindow/Store/…/Content/DisplayItem

img_10.png

Gs2ShowcaseDisplayItemContext

この GameObject 以下のノードで取り扱う商品を指定しています。 コンテキストの内容は Gs2ShowcaseDisplayItemList によって割り当てられます。

Gs2ShowcaseDisplayItemFetcher

陳列されている商品の詳細を取得します。

Canvas/MoneyStoreWindow/Store/…/Content/DisplayItem/Icon

img_11.png

Gs2ShowcaseSalesItemNameEnabler

陳列されている商品の名前を使用して GameObject の表示・非表示を制御します。 商品によって表示する画像を切り替えるのに使用しています。

Canvas/MoneyStoreWindow/Store/…/Content/DisplayItem/Price

img_12.png

Gs2MoneyDepositByUserIdFetcher

DisplayItem の AcquireActions から Gs2MoneyDepositByUserId を取り出します。

Gs2MoneyDepositByUserIdLabel

Gs2MoneyDepositByUserId に設定されたパラメーターを Format で指定された形式に整形します。 整形されたテキストは OnUpdate(String) にコールバックされ、そこから Text コンポーネントに値を反映しています。

Canvas/MoneyStoreWindow/Store/…/Content/DisplayItem/Count

img_12.png

Gs2MoneyDepositByUserIdFetcher

DisplayItem の AcquireActions から Gs2MoneyDepositByUserId を取り出します。

Gs2MoneyDepositByUserIdLabel

Gs2MoneyDepositByUserId に設定されたパラメーターを Format で指定された形式に整形します。 整形されたテキストは OnUpdate(String) にコールバックされ、そこから Text コンポーネントに値を反映しています。

Canvas/MoneyStoreWindow/Store/…/Content/DisplayItem/Buy/Gs2ShowcaseShowcaseBuyAction

img_13.png

こちらのコンテキストメニューよりプレハブを追加できます。

Gs2ShowcaseShowcaseBuyAction

Quantity で購入する数量を指定できます。

プレハブを有効化することで Gs2ShowcaseDisplayItemContext で指定した商品を購入します。

Process/Gs2AutoLogin

ログイン処理を実行するプレハブが設定されています。

Accountのサンプル で解説していますので、そちらを参照ください。