> For the complete documentation index, see [llms.txt](/llms.txt)

# Money(GS2 UIKit for Unity) のサンプル

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



課金通貨の残高管理を実装します。

## リポジトリ

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

## プロジェクト内容

![img_13.png](img_13.png)

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

![img_14.png](img_14.png)

実行すると、このように課金通貨の残高が表示されます。

まずは「Deposit(Free)」をクリックします。

![img_15.png](img_15.png)

残高が 1000 になります。

次に「Deposit(Paid)」をクリックします。

![img_16.png](img_16.png)

残高が 2000 になります。
内部的には無償と有償で別のデータとして扱いますが、このサンプルでは総量を表示しています。

次は「Withdraw」をクリックします。

![img_17.png](img_17.png)

残高が 1900 になります。

## プロジェクトの解説

![img_12.png](img_12.png)

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

### Canvas/MoneyWindow

![img.png](img.png)

**Gs2MoneyOwnWalletContext**

この GameObject 以下のノードで取り扱う GS2-Money のウォレットを指定しています。

![img_2.png](img_2.png)
![img_1.png](img_1.png)

今回は、GS2-Money の money-0001 というネームスペースの スロット 0 ウォレットを指定しています。

### Canvas/MoneyWindow/Wallet/Contents/WalletValue

![img_3.png](img_3.png)

**Gs2MoneyOwnWalletEnabler**

Gs2MoneyOwnWalletContext で指定したウォレットのロードが終わると Value GameObject を有効化します。

### Canvas/MoneyWindow/Wallet/Contents/WalletValue/Value

![img_4.png](img_4.png)

**Gs2MoneyOwnWalletLabel**

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

### Canvas/MoneyWindow/Input/Withdraw/Gs2MoneyWalletWithdrawAction

![img_5.png](img_5.png)

課金通貨の残高を減らします。

**Gs2MoneyWalletWithdrawAction**

Count に消費する数量を指定します。

OnWithdrawComplete(EzWallet) に消費が終わった時にコールバックが返されます。

### Canvas/MoneyWindow/Input/DepositFree

![img_7.png](img_7.png)

**Gs2ExchangeRateModelContext**

GS2-Money の無償通貨を加算する GS2-Exchange の交換レートを設定します。

![img_9.png](img_9.png)
![img_8.png](img_8.png)

ここでは、GS2-Exchange の exchange-0005 という名前のネームスペース の Gem0to1000 という名前の交換レートを指定しています。

### Canvas/MoneyWindow/Input/DepositFree/Gs2ExchangeExchangeExchangeAction

![img_6.png](img_6.png)

無償課金通貨の残高を加算します。

**Gs2ExchangeExchangeExchangeAction**

Count に交換する数量を指定します。

### Canvas/MoneyWindow/Input/DepositPaid

**Gs2ExchangeRateModelContext**

![img_10.png](img_10.png)

GS2-Money の有償通貨を加算する GS2-Exchange の交換レートを設定します。

ここでは、GS2-Exchange の exchange-0005 という名前のネームスペース の Gem1000to1000 という名前の交換レートを指定しています。

### Canvas/MoneyWindow/Input/DepositPaid/Gs2ExchangeExchangeExchangeAction

![img_11.png](img_11.png)

有償課金通貨の残高を加算します。

**Gs2ExchangeExchangeExchangeAction**

Count に交換する数量を指定します。

### Process/Gs2AutoLogin

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

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




