【Unity】iOSでセーブデータを読み書きする方法

unity

少し前にScriptableObjectの記事を書いた。

【Unity】ScriptableObjectの使い方

元々セーブ機能を作りたくて調べた上記の機能であるが、Unityエディタでは問題なく動くのに、実機だと動かない。

動かないというかアセットファイルの値を変更できないので、セーブができない。

ScriptableObjectから作られたアセットファイルの値はUnityエディタから変更できても、実機(iPhoneとかAndroidのスマホ、ゲーム機など)で実行された場合は変更できないんです。

https://ekulabo.com/about-scriptable-object

そこでどうしたかというと、StreamWriterStreamReaderを使って、Application.persistantDataPathにデータを読み書きすることにした。

ここならアプリがバージョンアップされてもデータは恒久的に残るらしい。

実装するに当たって、以下の記事がシンプルで分かりやすかったので参照した。

https://qiita.com/kengkong/items/3fe34ce5e1af89b2adb3

ScritableObjectを継承したデータ保存用クラスの代わりに、Serializeした別のデータ保存用クラスを作成し、以下のコードで読み書きするようにした。