【Unity】データのセーブについて
UnityでデータセーブというとPlayerPrefsがありますが、Windowsだとレジストリに保存されるとか。普通のパソコンゲームのようにセーブデータのフォルダを作ってそこにデータを保存したいところです。
一応インターネット上に色々とセーブのやり方が書いてあったので、それを参考にしてやってみたら上手くいきました。
参考サイト⇒UnityでSave/Loadを実装するには? - tuedaの日記
と、ここまではよかったんですが、なにぶんプログラムをキチンと勉強したわけではないので、バイナリデータとかストリームとかさっぱり分かりませんでした。
セーブについて考えるとき、セーブデータをXMLで保存する方法もありましたが、よくよく考えてみたら、XMLで保存したら簡単にデータをいじれてしまうので、ズルする人も出てくるということに気が付きました。(逆に色々いじれるゲームも楽しそうですが)
なので、バイナリデータとかjsonとかのデータが選ばれるんでしょうね。
バイナリデータはどうも人間にはよくわからない機械用のデータのようです。jsonは人間にも読めるようですが、ソフトのインストールが必要なので、XMLよりはいじられにくいんでしょうか?
簡単なデータの保存なら(ハイスコアだけとか)バイナリでもよさそうですが、RPGとかのデータはjsonの方がよさそうですね。jsonの保存にはMiniJsonかLitJsonを使うようです。(どちらも英語のページでダウンロードできるようです。)
今回はバイナリデータを使ってセーブすることにしたのですが、調べていたらバイナリデータはfloatの保存ができないようですね。
今回はfloatは使わないので関係ないんですが、後々困るといけないので、その辺について詳しく書かれていたページのリンクを貼って困ったときに来ることにしましょう。
unity_file_read_write - FreeStyleWiki
バイナリデータはC#の標準的な機能で保存できるようです。
プログラム自体Unityが初めてだったので、プログラムの基本的な部分ですらよくわかりませんでしたが、普段UnityでC#のスクリプトを作った時の最初の状態はUnityの標準的な状態であって、そこで使っていた関数?(メソッド)もUnity専用だったんだということがだんだんわかってきました。
最初の方に記述されてるusing~の記述で色々追加しないと標準的でもなんでも使えないんだと。
・・・まだまだ前途多難です。