Easy Save2 を使ってみる

はじめに

Unityではデータの保存にPlayerPrefsを使うことはできるけど、int, float, stringしか保存できないので、簡単な用途にしか使えない。
データの保存を簡単にできるアセットに Easy Save2 がある。
これをセールで安かったため、購入し使ってみることにした。

対応しているプラットフォーム

PC、Mac、Web、Linux、iOS、Android、Windows Phone 8、Windows Store となっており、ひと通り動くようだ。
Webプレイヤーはデータの保存容量に1MBの制限があるみたい。

対応している型

Supported Typesを見れば一目瞭然。
ListやDictionaryなどのコレクション系はもちろん、VectorとかTransofrmもいけるらしい。

実際にセーブ・ロードする

特に難しいこともなく、PlayerPrefsを使う感覚と同じ感じ。リストとtransformのセーブとロードはこんな感じ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//リストのセーブ.
List<string> strs = new List<string>();
strs.Add("abc");
strs.Add("def");
ES2.Save(strs, "stringList");
//リストのロード.
List<string> loadStrings = ES2.LoadList<string>("stringList");

//transformのセーブ.
transform.position = new Vector3(0.5f, 1f, 2f);
ES2.Save(transform, "transform");

//transformのロード.
Transform t = ES2.Load<Transform>("transform");

保存場所

Application.persistentDataPathがデフォルトの保存場所のようだ。
Windowsだと C:\Users\xxxx\AppData\LocalLow{Company Name}{Product Name} 。
Company Name と Product Name は Player Settings の項目にあるやつ。
もちろん、保存場所を変更することができ、ビルドしてできたexeファイルと同じ場所に保存することも可能。

iOSやAndroidの保存場所は下記が参考になる。
【Unity3D】ファイル保存パス

データファイル

保存場所を開くと、前述で試したファイルが存在しているのがわかる。
保存場所

keyごとにファイルが生成されているが、タグという機能を使うと1つのファイルにまとめることができる。

1
2
ES2.Save(strs, "someFile?tag=stringList");
ES2.Save(transform, "someFile?tag=transform");

こうすると、someFile というファイルだけが生成される。

暗号化

ファイルの暗号化にも対応している。こんな感じ。

1
2
3
ES2.Save(strs, "stringList?encrypt=true&password=test");
loadStrings = ES2.LoadList<string>("stringList?encrypt=true&password=test");
loadStrings = ES2.LoadList<string>("stringList"); //エラー.

毎回、設定するのが面倒な場合は、デフォルト設定で暗号化をONにすれば良い。
Projectのところで右クリックすると、Easy Save2 用のメニューが追加されているので、「Add Default Settings Object to Scene」 を選択すればデフォルト設定ができる。

ざっと紹介したけど、紹介したことは全部Easy Save 2 Documentationに載っているので、最新の情報や詳しいことはそちらを参照してほしい。

応用

Easy Save2 で シリアライズされたクラスを保存する

確認バージョン

Unity 4.6

Unityカテゴリの記事
AnimatorのCulling Modeでハマった話
Vectrosityを使ってUGUI上で線や円のアニメーションをする
スプレッドシートからjsonデータを読み込む
ビジュアルノベルアセットFungusにコマンドを追加してカスタマイズする
Skinned Mesh Renderer の Boundsについて
シーンごとにビルド結果の容量を出す
シーンビューにクオリティ設定のスライダーを出すエディタ拡張
ビルド結果のFile headersが大きい理由
フリーのビジュアルノベルアセットFungusを使ってRPGのイベントを作る
Move To View を改良する
フリーのビジュアルノベルアセットのFungusが便利
Visual Studio で保存時にフォーマットする
スプレッドシートからデータを読み込む
Easy Save2 で シリアライズされたクラスを保存する
ShaderでSpriteの色相をシフトする
Sprite、Texture の 色相をシフトする
uGUIのButtonをクリック時にハイライトのままになる
uGUIのCanvas Groupを使って透過処理をしたり、操作を制限する
自作のコンフィグ画面に必要なもの
uGUIでトグルなボタンを作る
uGUI で動的にボタンを作る
csv読み込んで ローカライズ
LoadLevelAdditive で共通シーンを加算
画面全体に色をかける
Any State でどこからでも遷移できるようにする
iTween のStop ではまる
sprite の multiple で 境界がおかしくなる
2D画面に線を引く Line Renderer
Renderer の Materials を スクリプトから設定する
背景をスクロールさせる