はじめに
Unityでセーブ機能を実装する方法はいくつかありますが、初心者向けの方法としては、
・UnityEngineが提供しているPlayerprefsを利用する
というのがあります。ただし、セーブできる型が限られており、本格的にゲーム制作をするとなると、あまり実用的ではありません。
それに、一つの変数を保存するためにコードをいちいち書かないといけないのが大変です。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img/http://umistudioblog.com/wp-content/uploads/2023/01/cropped-アイコン候補-150x150.png)
Playerprefsはできれば使いたくない!
簡単にできる他の方法ないかな?
Easy Saveというアセットを使うとコードを書かずにセーブ、ロードすることができるようになるので非常に手間が省けます。
Easy Saveとは
簡単にセーブ・ロード機能の実装ができ、暗号化まで行ってくれるアセットです。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_1024,h_683/https://umistudioblog.com/wp-content/uploads/2023/01/easysave-1024x683.webp)
セーブできる型は、int、float、string、boolといった基本的なものから、GameObject、配列、Text、Transformなど様々なものが対応されています。
詳しくはこちらをご覧ください。
特徴
- コードを書かずにセーブする対象を指定できる
- オートセーブ対応
- 暗号化対応
もちろん、Playerprefsのようにコードを書いて指定したタイミングでセーブしたり、セーブ対象変数をセーブすることもできます。
セーブ・ロード方法
今回は、一切コードを書かずにセーブ・ロードを実装します。
まずは、Window > Package ManagerからEasy Saveをインストールしましょう。
Tools > Easy Save 3 > Auto Save をクリックし、Easy Save のウィンドウを表示させます。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_313,h_286/https://umistudioblog.com/wp-content/uploads/2023/01/スクリーンショット-2023-01-25-13.41.28.png)
表示されたウィンドウのEnable Auto Save for this sceneをクリックします。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_479,h_141/https://umistudioblog.com/wp-content/uploads/2023/01/スクリーンショット-2023-01-25-13.43.43.png)
すると、Hierarchy同様の表示が出てきます。
ウィンドウ上部のSave Event、Load Eventで、セーブ・ロードのタイミングを設定できます。
デフォルトでは、アプリが停止された場合に自動的にセーブし、Awake時にロードするようになっています。
セーブしたいものを選択します。
今回は、試験用にボタンを押すと1増える画面を用意しました。以下の3点をセーブしてみます。
- GameObject(ボタン)のアクティブ状態
- 数字テキスト
- スクリプト内、変数(int型)
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_717,h_431/https://umistudioblog.com/wp-content/uploads/2023/01/スクリーンショット-2023-01-25-14.14.17.png)
セーブするものにはチェックを入れます。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_660,h_890/https://umistudioblog.com/wp-content/uploads/2023/01/スクリーンショット-2023-01-25-14.09.55.png)
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img/http://umistudioblog.com/wp-content/uploads/2023/01/cropped-アイコン候補-150x150.png)
チェックを入れるだけだから簡単!
実行
試験用にボタンを押すと1増える画面を用意しました。
ボタンを押して数字を増やしてから、停止して再起動すると、前回のデータがロードされています。
ボタンのアクティブ状態もセーブされ、2回目の起動では非表示にされています。
Unityエディタでセーブされたデータの場所
セーブデータの保存場所はTools > Easy Save 3 > Open Persistent Data Path から開くことができます。
また、エディタ上でセーブされた内容は、Tools > Easy Save 3 > Clear Persistent Data Pathから消去できます。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_318,h_285/https://umistudioblog.com/wp-content/uploads/2023/01/スクリーンショット-2023-01-25-14.26.32.png)
Tools > Easy Save 3 > Settings のDirectory から保存先を指定することもできます。
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_658,h_306/https://umistudioblog.com/wp-content/uploads/2023/01/スクリーンショット-2023-01-25-14.34.52-1.png)
おわりに
Easy Save を使うことで、コードを書かずに簡単にオートセーブの実装ができました。
コードを書けばさらに、次のことができるようになります。今後の記事で解説したいと思います。
・好きなタイミングでのセーブ&ロード
・セーブファイルを分ける
![](https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_1024,h_683/https://umistudioblog.com/wp-content/uploads/2023/01/easysave-1-1024x683.webp)