今回は,ゲーム制作で無料ものでセーブ・ロード機能を実装してほしいと要望があったので実装してみました
使用したライブラリ
有料版もありましたので,気になる方は確認してみてください
ライブラリの機能(GithubPageより)
The below features made Save Game Free excellent:
セーブ・ロード機能の実装
以下のスクリプトでは,以下の機能を実装しています
- カスタムクラスのデータをデーブ
- パスワード付きデータで保存
- デーブデータの暗号化
using _Project.Scripts.Interface; using BayatGames.SaveGameFree; namespace _Project.Scripts.Model { public class SaveHandler : ISaveData { public void Save(SaveDataClass saveDataClass) { SaveGame.Encode = true; SaveGame.Save("SaveData",saveDataClass,"pass"); } public SaveDataClass Load() { return SaveGame.Load<SaveDataClass>("SaveData",true,"pass"); } } }
備考
セーブデータの保存場所
デフォルトでは,Application.persistentDataPath
に保存されるみたいです
各種プラットフォームのパスの詳細
データの暗号化
データの暗号化
暗号化は SaveGame.Encode = true;
で有無を変更できるみたいです
暗号化されているのかの確認
まず,データが保存されていくところまで行きます
メモ帳で開いてみます
とりあえずソフトとかを使わない限りは見えてないと思います
パスワード付きデータ
セーブ時
パスワードは,SaveGame.Save("SaveData",saveDataClass,"pass");
という感じで引数にいれれば指定できます
ロード時
セーブデータをロードするときは,SaveGame.Load<SaveDataClass>("SaveData",true,"pass");
という感じで自分で設定したパスワードを入れます
パスワードが間違っている場合は以下のようにロードできないみたいです.
パスワードが違うときに表示されるエラー文
CryptographicException: Padding is invalid and cannot be removed.