ファイルセーブ方法
http://magnaga.com/unity/2016/01/11/unity-save/
という方法があるらしい。
しかし、面倒だったので、
C#の基本命令の
BinaryWriter
BinaryReader
で作ったらうまく動作した。
フリーツールで、FBXBIN でファイルの中身を確認
さらにはブレークポイントを入れてアタッチ起動(VisualStudioでファンクション5キーを押す)
でロードの確認
しかし、PC以外での動作確認はしていない。
テストコード
using UnityEngine; using System.Collections; using System.IO; public class SaveData : MonoBehaviour { MySaveData saveData; MySaveData saveDataTest; // Use this for initialization void Start() { saveData = new MySaveData{ a = 1,b=2,c=3 }; using (var w = new BinaryWriter(File.OpenWrite("saveData.dat"))) { w.Write(saveData.a); w.Write(saveData.b); w.Write(saveData.c); w.Close(); } } // Update is called once per frame void Update () { if(Input.GetKeyDown(KeyCode.Return)) { print("return key was pressed"); Load(); } if (Input.GetKeyDown(KeyCode.Space)) print("space key was pressed"); } void Load() { using (var r = new BinaryReader(File.OpenRead("saveData.dat"))) { saveDataTest.a=r.ReadInt32(); saveDataTest.b=r.ReadInt32(); saveDataTest.c=r.ReadInt32(); r.Close(); } } } public struct MySaveData { public int a, b, c; }
セーブもメソッド化は後でしておこう。
セーブファイルはプロジェクトのフォルダ内に生成される。
ロードしたりセーブしたりする順序は全く同じにすること。
でないと、値が入れ替わったり、ロードやセーブの変数の個数が違うとエラーになる。