Unityに関連する記事です

 ムービー一覧用のリストをセーブし、次回のゲーム実行時にロードする機能を追加します。
この機能により、前回までに獲得しているムービー情報が一覧として表示されるようにします。


<実装動画 .察璽屐
動画ファイルへのリンク


<実装動画◆.蹇璽鼻
動画ファイルへのリンク




設計


 ユーザーの獲得したアイテムの情報がリストに登録されて管理できているため、この情報をセーブしておく機能を追加します。

 どのタイミングでセーブを行うかですが、これは前回と同じようにアイテムの獲得のタイミングでリストに追加するとともに、セーブを行うようにします。
獲得したアイテムの情報とセーブする情報を紐づけておくには、このタイミングが一番よい状態であるためです。

 セーブ機能には Unity で用意されている PlayerPrefs クラスを利用します。
このクラスではセーブできる情報が限られているため、今回はアイテムの番号の情報を、ラベルをつけてセーブするようにします。
そのため、リストにあるアイテムの情報をまとめてセーブする方法ではなく、アイテムを獲得するたびに、そのアイテムの情報のみをセーブしていく設計にしています。



 この処理が完成後、セーブした情報をロードし、以前のアイテムの情報を復元する機能も追加します。
ロードのタイミングはゲーム開始直後が理想的です。ゲームが始まり、ムービー一覧ポップアップを開く前までに
前回セーブしてあるアイテムの情報が復元できていれば、その情報を元にサムネイルが生成出来るためです。

 ロードについては、アイテムのデータベースを基準に、すべてのアイテムの情報を照合します。
そして、セーブされているアイテムの番号の情報とデータベースにあるアイテムの番号の情報が合致したもとを「所持していた」と判断し、リストに追加し復元します。


UserData スクリプトの修正し、セーブ機能を追加する


 今回 UserData クラスは2回修正します。まずはセーブの機能を追加します。
UserData クラスはシングルトンクラスですので、他のクラスから簡単に参照できます。

 セーブ用のメソッドを UserData クラスに作成しておくことにより、どのクラスからでも容易にセーブができる設計にしています。


UserData.cs

<= クリックすると開きます。


 スクリプトを修正したらセーブします。


ItemDetailModel スクリプトの修正をする


 前回の処理に引き続き、アイテムを取得したタイミングで、UserData に用意してあるセーブ用のメソッドを実行して、獲得したアイテムの情報をセーブします。
TODO の書いてある部分に処理を実装します。


ItemDetailModel.cs

<= クリックすると開きます。


 スクリプトを修正したらセーブします。


ゲームを実行して動作を確認する


 セーブの処理自体は視覚的に確認できません。そのため、UserData クラスのセーブ用のメソッド内には Debug.Log メソッドを書いてあります。
アイテムを獲得した段階で正常にセーブが実行されていれば、Console ビューにログが表示されますので、
このフィードバックを受けることで、処理が正常に動作しているかを判断できるようにしています。


Console ビュー



<実装動画 セーブ>
動画ファイルへのリンク


 正常に動作しましたら、引き続き、セーブしたデータをロードする機能を追加します。


UserData スクリプトの修正し、ロード機能を追加する


 もう一度、UserData クラスを修正し、今度はゲームの実行のタイミングでセーブされているアイテムのデータがあるかを判定し、
セーブされている場合にのみ、そのアイテムの情報を獲得リストに復元します。


UserData.cs

<= クリックすると開きます。


 スクリプトを修正したらセーブします。


ゲームを実行して動作を確認する


 処理の見直しを行い、どのタイミングでロードが発生するのか、理解してからデバッグを行います。
Console ビューだけではなく、UserData のインスペクターも一緒に確認するとよいでしょう。


インスペクター画像



インスペクター画像



Console ビュー



<実装動画 ロード>
動画ファイルへのリンク




 以上で完成です。

 お疲れ様でした。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



プログラムの基礎学習

コード練習

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

3Dトップビューアクション(白猫風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます