【Unity】セーブ機能の作り方!コード要らずで簡単に実装できるおすすめアセットの紹介【Easy Save】

はじめに

Unityでセーブ機能を実装する方法はいくつかありますが、初心者向けの方法としては、

・UnityEngineが提供しているPlayerprefsを利用する

というのがあります。ただし、セーブできる型が限られており、本格的にゲーム制作をするとなると、あまり実用的ではありません。

それに、一つの変数を保存するためにコードをいちいち書かないといけないのが大変です。

Playerprefsはできれば使いたくない!

簡単にできる他の方法ないかな?

Easy Saveというアセットを使うとコードを書かずにセーブ、ロードすることができるようになるので非常に手間が省けます。

Easy Saveとは

簡単にセーブ・ロード機能の実装ができ、暗号化まで行ってくれるアセットです。

Easy Save – The Complete Save Data & Serializer System

セーブできる型は、int、float、string、boolといった基本的なものから、GameObject、配列、Text、Transformなど様々なものが対応されています。

詳しくはこちらをご覧ください。

特徴

  • コードを書かずにセーブする対象を指定できる
  • オートセーブ対応
  • 暗号化対応

もちろん、Playerprefsのようにコードを書いて指定したタイミングでセーブしたり、セーブ対象変数をセーブすることもできます。

セーブ・ロード方法

今回は、一切コードを書かずにセーブ・ロードを実装します。

まずは、Window > Package ManagerからEasy Saveをインストールしましょう。

Tools > Easy Save 3 > Auto Save をクリックし、Easy Save のウィンドウを表示させます。

表示されたウィンドウのEnable Auto Save for this sceneをクリックします。

すると、Hierarchy同様の表示が出てきます。

ウィンドウ上部のSave Event、Load Eventで、セーブ・ロードのタイミングを設定できます。

デフォルトでは、アプリが停止された場合に自動的にセーブし、Awake時にロードするようになっています。

セーブしたいものを選択します。

今回は、試験用にボタンを押すと1増える画面を用意しました。以下の3点をセーブしてみます。

  • GameObject(ボタン)のアクティブ状態
  • 数字テキスト
  • スクリプト内、変数(int型)

セーブするものにはチェックを入れます。

チェックを入れるだけだから簡単!

実行

試験用にボタンを押すと1増える画面を用意しました。

ボタンを押して数字を増やしてから、停止して再起動すると、前回のデータがロードされています。

ボタンのアクティブ状態もセーブされ、2回目の起動では非表示にされています。

Unityエディタでセーブされたデータの場所

セーブデータの保存場所はTools > Easy Save 3 > Open Persistent Data Path から開くことができます。

また、エディタ上でセーブされた内容は、Tools > Easy Save 3 > Clear Persistent Data Pathから消去できます。

Tools > Easy Save 3 > Settings のDirectory から保存先を指定することもできます。

おわりに

Easy Save を使うことで、コードを書かずに簡単にオートセーブの実装ができました。

コードを書けばさらに、次のことができるようになります。今後の記事で解説したいと思います。

・好きなタイミングでのセーブ&ロード

・セーブファイルを分ける

Easy Save – The Complete Save Data & Serializer System
タイトルとURLをコピーしました