【Unity】データのセーブについて

UnityでデータセーブというとPlayerPrefsがありますが、Windowsだとレジストリに保存されるとか。普通のパソコンゲームのようにセーブデータのフォルダを作ってそこにデータを保存したいところです。

 

一応インターネット上に色々とセーブのやり方が書いてあったので、それを参考にしてやってみたら上手くいきました。

参考サイト⇒UnityでSave/Loadを実装するには? - tuedaの日記

 

と、ここまではよかったんですが、なにぶんプログラムをキチンと勉強したわけではないので、バイナリデータとかストリームとかさっぱり分かりませんでした。

 

セーブについて考えるとき、セーブデータをXMLで保存する方法もありましたが、よくよく考えてみたら、XMLで保存したら簡単にデータをいじれてしまうので、ズルする人も出てくるということに気が付きました。(逆に色々いじれるゲームも楽しそうですが)

 

なので、バイナリデータとかjsonとかのデータが選ばれるんでしょうね。

バイナリデータはどうも人間にはよくわからない機械用のデータのようです。jsonは人間にも読めるようですが、ソフトのインストールが必要なので、XMLよりはいじられにくいんでしょうか?

 

簡単なデータの保存なら(ハイスコアだけとか)バイナリでもよさそうですが、RPGとかのデータはjsonの方がよさそうですね。jsonの保存にはMiniJsonLitJsonを使うようです。(どちらも英語のページでダウンロードできるようです。)

 

今回はバイナリデータを使ってセーブすることにしたのですが、調べていたらバイナリデータはfloatの保存ができないようですね。

 

今回はfloatは使わないので関係ないんですが、後々困るといけないので、その辺について詳しく書かれていたページのリンクを貼って困ったときに来ることにしましょう。

 

unity_file_read_write - FreeStyleWiki

 

バイナリデータはC#の標準的な機能で保存できるようです。

プログラム自体Unityが初めてだったので、プログラムの基本的な部分ですらよくわかりませんでしたが、普段UnityでC#スクリプトを作った時の最初の状態はUnityの標準的な状態であって、そこで使っていた関数?(メソッド)もUnity専用だったんだということがだんだんわかってきました。

 

最初の方に記述されてるusing~の記述で色々追加しないと標準的でもなんでも使えないんだと。

 

・・・まだまだ前途多難です。