(:3[kanのメモ帳]スマートフォン用の表示で見る(:3[kanのメモ帳]個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。Saveは名前の通り、PlayerPrefs並に簡単に使えるアセットですが、ListやTransformなど色々な型を保存出来たり、暗号化を設定1つで実装出来たりと多機能でもあります。transform);この"色々な型"を保存出来るというのが本当に色々で、intやstringはもちろん、Enum、DateTimeArray(2次[,]と3次[,,]も)、List、HashSet、Dictionary、AudioClip、Transform、Material、Vector3といったものまで保存出来てしまいます。ちなみに保存出来る型の一覧は以下のページにあります。Saveにバージョン2と3があり、どちらかを選んで使う事になります。使い方自体はそんなに変わらないっぽいです。バージョン2と3の違いは以下の通りです。3と以前のバージョンとの主な違いは次のとおりです。参照によりUnityEngine.Object型を保存するES3Typeファイルを作成しなくても、直列化可能クラスは自動的にサポートされます。単純なAPI、そして配列とコレクションのための個々のメソッドはもうありませんJSONフォーマットがサポートされました継承がサポートされましたGameObjectsとプレハブインスタンスを保存して読み込むさらに多くのUnityEngineタイプのための箱から出してすぐにサポートやはり新しい方が良い気がするので、この記事ではバージョン3の方を使っていきます。Save2からバージョン2だけをアンイストール出来るみたいです。残念ながら3のアンイストールメニューはないようです。Saveの実装方法について説明していきます。Managerというオブジェクトが自動で生成されるようになりますが、これは必要なものらしいので、消さないようにしましょう。(と言っても、消したとしてもデフォルトの設定だとすぐに復活しますが)ただし、想定外のエラーが出るようになった時、一旦消すと直るという事もあるみたいです。セーブデータのセーブにはES3.Saveというメソッドを使います。第1引数で保存するKeyを、第2引数で実際に保存する値を指定する感じです。同じKeyであれば、型が異なる場合でも上書きし、エラーなども特に出ないので注意が必要です。「セーブデータ(スロット?)を複数作る」みたいな実装も簡単に出来ます。"myDirectory/myFile2.es3");ロードデータのロードにはES3.Loadというメソッドを使います。第1引数で保存した時のKeyを指定する感じです。ES3.Load<string>("StingKey");ただし、Transformなど、既存のオブジェクトに値を読み込むには、ES3.LoadIntoを使用します。transform);なお、指定したKeyで値が保存されていない場合はエラーが出ます。そんな時はdefaultValueで「値が保存されていない時の値(デフォルト値)」を指定出来ます。defaultValue:"aaaa");ただし、セーブした時と違う型でロードしようとするとエラーが出ます。"aaa")また、セーブと同様、第3引数でロードするファイルを指定する事も可能です。"myDirectory/myFile2.es3");削除データの削除にはES3.DeleteKey、ファイルの削除にはES3.DeleteFile、ディレクトリの削除にはES3.DeleteDirectoryを使います。//aaaというKeyで保存した値を削除ES3.DeleteKey("aaa");//myFile1.es3というファイルを削除ES3.DeleteFile("myFile1.es3");//myDirectoryというディレクトリを削除ES3.DeleteDirectory("myDirectory");なお、削除する対象がなくてもエラーにはなりません。存在判定セーブしたデータの中に特定のKeyが存在するかはES3.KeyExists、ファイルが存在するかはES3.FileExists、ディレクトリが存在するかはES3.DirectoryExistsで判定します。保存されているKey一覧を取得するにはES3.GetKeys、ファイルの一覧を取得するにはES3.GetFiles、ディレクトリの一覧を取得するにはES3.GetDirectoriesを使います。実際に使ってみた所、ファイルとディレクトリの一覧は取得出来ませんでした。保存先を変更したものは取得出来ませんでした。暗号化ES3.Saveを使う際にES3Settingsを引数に渡すと、値ごとに暗号化する事が可能です。ES3.Load時も同様にES3Settingsが必要になります。settings);しかし後述する設定で、セーブファイル全体を簡単に暗号化する事が可能なので、あまり使う事はないかもしれません。設定ここからは設定の話です。Sceneのチェックを外すと自動生成されなくなります。自動生成しなくなった場合は、自分で作る必要があります。セーブファイルの保存場所セーブファイルの保存場所はSettingsのLocationなどで設定します。Toolsでそのセーブファイルの場所を開いたり、セーブファイルを消したり、ついでにPlayerPrefsを消す事も可能です。実際にセーブファイルの保存場所を開いてみると以下のような感じ。TypeをAESにし、Paswaordに好きな文字列を入れるとファイル全体を暗号化する事が出来ます。実際に暗号化前後のセーブファイルの中身を比較すると以下のような感じ。設定を切り替える時はセーブデータを削除してからにしましょう。欲を言えば保存されているデータ一覧とその編集が出来れば最高でした。Saveのトラブルシューティング的な記事も書きました。はてなブログPro個人ゲーム開発者。ω、)_新作は札束風呂VRや神巫女。Policy広告はてなブログをはじめよう!kan_kikuchiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。