💾

Easy Saveで保存したゲームデータの確認方法

2024/08/28に公開

Unityのゲーム開発にて、ゲームデータの管理にEasy Saveを使っているプロジェクトで特定のデータが正常保存されない事象に遭遇した。その時の調査メモ。

https://assetstore.unity.com/packages/tools/utilities/easy-save-the-complete-save-data-serializer-system-768

原因としてはスクリプトのクラス定義まわりの問題で、Easy Save自体の問題ではなかった(データのSave/Load部分で保存対象の変数のログ出力を見ると想定通りの状態になっているが、実際にはデータの保存がされていなかったというオチ)。

保存データの中身を確認する方法

Easy SaveのEncryption TypeをAESにして暗号化している場合、保存データのファイルを開いても、人間が読める状態になっていないので中身を確認することができない。そのため、一時的に暗号化をしない状態でデータを保存して中身を確認することにした。

Unity Editorの [Window] > [Easy Save 3] をクリックし、Easy Saveの設定ウインドウを開く。

Settingsタブで EncryptionAES から None に切り替える。

暗号化設定切り替え前のデータはロードできなくなるため、Toolsタブの Clear Persistent Data Path をクリックして既存データを削除する。

Open Persistent Data Path をクリックして、データ保存ディレクトリにある<保存ファイル名>.es3 ファイルをテキストエディタで開くと、Json形式で保存されたデータが確認できる。

今回はこの方法で対象変数のデータが保存されていないことを確認し、スクリプト側の問題を特定&修正することで解決。

なお、本番リリース時に暗号化をかけ忘れると死ぬので、Encryption Typeを None にするのは、開発中に直接保存データの中身を確認したい時のみに留めるのが良いと思う。

参考

Discussion