Unityでゲームを作っていると、「セーブ・ロードって意外とめんどくさい…」と思うこと、ありませんか?
PlayerPrefsだと対応できない複雑なデータや、セキュリティ面の不安もありますよね。
そんな悩みを一発で解決してくれるのが、Easy Save3(ES3)です。
この記事では、Easy Save3の導入方法から基本的な使い方までを、サンプル付きで丁寧に解説します!
この記事で学べること
- Easy Save3のインストール方法
- Easy Save3の設定場所
- セーブ/ロードの基本構文
- ゲームデータの保存例(数値・文字列・クラス・位置など)
- セキュア保存やファイル分割の使い方
インストール方法
- Unity Asset Storeから「Easy Save3」を購入&ダウンロード
- Unityにインポート
※ インポート手順は以下を参考にしてください。
Easy Save3の設定場所
Easy Save3は以下の画像の場所にあり、設定が可能。(パスワード、保存パス、Auto Save等)

基本的な使い方(保存・ロード・存在確認)
数値や文字列の保存・ロード・存在確認
ES3.Save<int>("Score", 12345);
// データが存在するか確認
if (ES3.KeyExists("Score"))
{
// ロード
int score = ES3.Load<int>("Score");
}
else
{
Debug.Log("スコアデータが存在しません");
}
Vector3の保存・ロード・存在確認
ES3.Save<Vector3>("PlayerPos", transform.position);
// 存在確認
if (ES3.KeyExists("PlayerPos"))
{
Vector3 pos = ES3.Load<Vector3>("PlayerPos");
transform.position = pos;
}
カスタムクラスの保存・ロード・存在確認
[System.Serializable]
public class PlayerData {
public string name;
public int level;
}
// 保存
PlayerData data = new PlayerData { name = "Taro", level = 5 };
ES3.Save("PlayerData", data);
// 存在確認&ロード
if (ES3.KeyExists("PlayerData"))
{
PlayerData loaded = ES3.Load<PlayerData>("PlayerData");
Debug.Log($"名前: {loaded.name}, レベル: {loaded.level}");
}
ファイル単位での存在確認
if (ES3.FileExists("save1.es3"))
{
int score = ES3.Load<int>("Score", "save1.es3");
}
else
{
Debug.Log("セーブファイルが見つかりません");
}
ファイル分けして保存するには?
//保存
ES3.Save("Score", 200, "save1.es3");
ES3.Save("Score", 500, "save2.es3");
//ロード
int score = ES3.Load<int>("Score", "save2.es3");
ファイルを削除するには?
ES3.DeleteKey("Score");
ES3.DeleteFile("save1.es3");
セキュリティ(暗号化)設定
- ES3Settingsから「Encryption Key」を設定
- 保存時に設定を渡すだけで暗号化可能
var settings = new ES3Settings { encryptionType = ES3.EncryptionType.AES, encryptionPassword = "mySecret" };
ES3.Save("SecretScore", 999, settings);
まとめ
Easy Save3は、「保存に悩む時間」を「開発に使う時間」に変えてくれる最高のツールです。
クラスや構造体もそのまま保存できるので、セーブ周りが一気にシンプルになります。PlayerPrefsで苦労している人、将来的にクラウドや暗号化を見据えたい人は、ぜひ導入を検討してみてください!