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

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

スタミナ機能を実装します。

リポジトリ

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

GS2-Deploy テンプレート

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

プロジェクト内容

img.png

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

img_1.png

実行するとこのようにスタミナの残量と、スタミナ操作のUIが表示されます。

img_2.png

まずは「Consume(5)」のボタンをクリックします。

img_3.png

スタミナを消費したことで、残量の表示が「45/50」となり、回復するまでのカウントダウンが表示されます。

次に「Recover(10)」のボタンをクリックします。

img_4.png

スタミナの残量が「55/50」になります。 最大値を超えた状態になりましたので、再びカウントダウンは表示されなくなります。

プロジェクトの解説

img_5.png

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

Canvas/StaminaWindow

img_6.png

Gs2StaminaOwnStaminaContext

この GameObject 以下のノードで取り扱う GS2-Stamina のスタミナを指定しています。

img_8.png img_7.png

今回は、GS2-Stamina の stamina-0001 というネームスペースの Stamina という名前のスタミナを指定しています。

Canvas/StaminaWindow/Stamina

Gs2StaminaStaminaEnabler

スタミナの読み込みが終わったら StaminaValue を有効化します。

Canvas/StaminaWindow/Stamina/StaminaValue/Slider

img_9.png

Gs2StaminaStaminaProgress

現在のスタミナの値の最大値に対する割合を 0.0〜1.0 で取得します。 最大値を超えた状態では 1.0 に丸められます。

取得した結果は OnUpdate(Single) に渡され、Slider の値に反映しています。

Canvas/StaminaWindow/Stamina/StaminaValue/Slider/Label

img_10.png

Gs2StaminaStaminaValueEnabler

スタミナが最大値に達しているかで GameObject を有効化します。

Canvas/StaminaWindow/Stamina/StaminaValue/Slider/Label/NextRecoverAt

img_11.png

Gs2StaminaStaminaNextRecoverAtFetcher

スタミナが次回回復する日時を取得します。 取得した結果は OnUpdate(int64) にコールバックされ、Gs2CoreTimeSpanLabel に値を反映します。

Gs2CoreTimeSpanLabel

スタミナが次回回復する日時までの残り時間を Format で指定した形式に整形します。 整形されたテキストは OnUpdate(String) にコールバックされ、そこから Text コンポーネントに値を反映しています。

Process/Gs2AutoLogin

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

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