セールの時に購入して放置していたEasySaveをようやく使う機会が出て来たので、試してみました。
使おうと思った対象アプリは「とけいであそぶ」で、問題を回答した成績を格納しようと思いました。
成績は多次元配列で格納してます。
1 2 3 4 5 6 |
//時計の問題:成績 public int[,,] ScoreRecord = { {{0,0},{0,0},{0,0}}, {{0,0},{0,0},{0,0}}, {{0,0},{0,0},{0,0}} };//種類*レベル*[スコア,合計] |
既に、publicにしてあるので、アプリ内ではクラスおよびシーン間で共有されてます。
UnityのPlayerPrefsでも配列をバラバラにして格納すれば出来るのですが、超面倒臭い。
丸っと多次元配列で格納したかったのでEasySaveを導入することにしました。
プロジェクトにassetをimportしたら、あとは数行書くだけで済みました。
1 2 3 4 |
if (ES3.KeyExists("ScoreRecord")) { ScoreRecord = ES3.Load<int[,,]>("ScoreRecord"); } |
セーブしたデータを呼び出すときは、キーで格納済みかを確認。
キーがあるなら、セーブデータからLoadします。
多次元配列と言ってもES3.Load
1 2 |
//EasySaveに保存 ES3.Save<int[,,]>("ScoreRecord", Manager_Game.Instance.ScoreRecord); |
逆に、データをセーブする時は、問題を回答したタイミングでint[,,]を丸っとSaveするだけです。
PlayerPrefsと同じ感覚で使えますね。
本当に簡単です。PlayerPrefsを使ったことがあれば、サクっと差し替えられます。
Unity2018.2
macOS High Sierra
EasySave3