セーブ機能でワールドに訪れた回数がわかるようにする

こんにちは、最近アニメーションシステム作りにハマっている hattori(はっとり) と申します。
今回は

を使ってワールドに訪れた回数がわかる機能を実装します。

この記事ではワールドの基本的なセットアップの手間を省くため、テンプレートワールド『プログレッション』内のAssets/ClusterCreatorKitTemplate/Progression/Scenes内にあるProgressionシーンを編集して実装していきます。

今回作り方を紹介する仕組みの完成アセットはこちらです。

このアセットをワールドに配置することで下記のように訪れた回数がわかるようになります。

これから順番に機能について解説していきます。

1.訪れた回数を記録する

まず、訪れた回数を記録する仕組みを作ります。空のゲームオブジェクトを用意し、JoinCounterという名前にします。そして

の3つのcomponentを加えます。

上から順に説明していきます。

今回紹介する新しいコンポーネントです。プレイヤーごとのプレイ状況を保存し、次に訪れたときに引き継ぐことのできるトリガーです。今回は、joinCountというKeyを持ったメッセージの情報を保存します。この情報はワールドを出入りしても消えず、再確認することができます。

プレイヤーが入室した時に通知するトリガーです。今回はOnJoinというKeyのメッセージをプレイヤーに通知します。

メッセージを読み取り、計算した結果をプレイヤーへメッセージとして通知するオペレーションです。今回はOnJoinというKeyを持ったメッセージを読み取った際、joinCountというKeyを持ったメッセージに値を1加えるようになっています。

上記の3つのコンポーネントによって、ワールドに入る度に、訪れた回数が更新される仕組みができました。

2.訪れた回数を表示する

次に、訪問回数を表示する仕組みを作ります。今回はわかりやすさのため、元々あるPlayerLocalUIは非表示にし、新しく作り直します。

次にPlayerLocalUI下のSafeAreaを選択し、Set Text Gimmickコンポーネントを加えます。Set Text Gimmickは、読み取ったメッセージの持ってる情報をTextコンポーネントに設定するギミックです。

今回、TargetをLocalPlayerにし、joinCountというKeyを持ったメッセージを受け取ったら{0}の部分にその値を表示するようになっています。例えば、プレイヤーの持っているメッセージの値が3の場合、「訪れた回数 : 3」と表示されます。

Textも今回は下記のように設定します。状況に応じて好みの設定にすることもできます。

これで表示の仕組みの実装も完了しました。

3.最後に

実際にワールドをアップロードして、ログイン回数を確認してみます。まず、最初にワールドに入ってみると、

ログイン回数 : 1 と表示されました!一度出直してもう一回ワールドに入ると、

ログイン回数 : 2 と更新されました!

今回紹介したのはログイン回数ですが、この仕組みを使ってレベル機能やポイント機能など、情報が保存されるからこそ楽しめる機能があると思います!
是非色々試してみて下さい!