Money(GS2 UIKit for Unity) のサンプル
課金通貨の残高管理を実装します。
リポジトリ
https://github.com/gs2io/gs2-uikit-for-unity-sample/tree/main/Money
GS2-Deploy テンプレート
https://github.com/gs2io/gs2-uikit-for-unity-sample/blob/main/Money/initialize_money_template.yaml
プロジェクト内容
プロジェクトを開くと上記の通りになります。
実行すると、このように課金通貨の残高が表示されます。
まずは「Deposit(Free)」をクリックします。
残高が 1000 になります。
次に「Deposit(Paid)」をクリックします。
残高が 2000 になります。 内部的には無償と有償で別のデータとして扱いますが、このサンプルでは総量を表示しています。
次は「Withdraw」をクリックします。
残高が 1900 になります。
プロジェクトの解説
シーンのヒエラルキーに注目してください。
Canvas/MoneyWindow
Gs2MoneyOwnWalletContext
この GameObject 以下のノードで取り扱う GS2-Money のウォレットを指定しています。
今回は、GS2-Money の money-0001 というネームスペースの スロット 0 ウォレットを指定しています。
Canvas/MoneyWindow/Wallet/Contents/WalletValue
Gs2MoneyOwnWalletEnabler
Gs2MoneyOwnWalletContext で指定したウォレットのロードが終わると Value GameObject を有効化します。
Canvas/MoneyWindow/Wallet/Contents/WalletValue/Value
Gs2MoneyOwnWalletLabel
Gs2MoneyOwnWalletContext で指定したウォレットを Format で指定した形式で整形します。 整形されたテキストは OnUpdate(String) にコールバックされ、そこから Text コンポーネントに値を反映しています。
Canvas/MoneyWindow/Input/Withdraw/Gs2MoneyWalletWithdrawAction
課金通貨の残高を減らします。
Gs2MoneyWalletWithdrawAction
Count に消費する数量を指定します。
OnWithdrawComplete(EzWallet) に消費が終わった時にコールバックが返されます。
Canvas/MoneyWindow/Input/DepositFree
Gs2ExchangeRateModelContext
GS2-Money の無償通貨を加算する GS2-Exchange の交換レートを設定します。
ここでは、GS2-Exchange の exchange-0005 という名前のネームスペース の Gem0to1000 という名前の交換レートを指定しています。
Canvas/MoneyWindow/Input/DepositFree/Gs2ExchangeExchangeExchangeAction
無償課金通貨の残高を加算します。
Gs2ExchangeExchangeExchangeAction
Count に交換する数量を指定します。
Canvas/MoneyWindow/Input/DepositPaid
Gs2ExchangeRateModelContext
GS2-Money の有償通貨を加算する GS2-Exchange の交換レートを設定します。
ここでは、GS2-Exchange の exchange-0005 という名前のネームスペース の Gem1000to1000 という名前の交換レートを指定しています。
Canvas/MoneyWindow/Input/DepositPaid/Gs2ExchangeExchangeExchangeAction
有償課金通貨の残高を加算します。
Gs2ExchangeExchangeExchangeAction
Count に交換する数量を指定します。
Process/Gs2AutoLogin
ログイン処理を実行するプレハブが設定されています。
Accountのサンプル で解説していますので、そちらを参照ください。