セーブデータ2 | vicのブログ

vicのブログ

ツール系やソフト開発について書こうと思っています。
書き込み大歓迎です。
間違いとかもっといい方法とかあったらご指摘いただけるとありがたいです。
質問をいただいたら、記事をもっとわかりやすく変更します。


ちょっとだけ使いやすくした。

どちらにしろ、MySaveData構造体は都合に合わせて作らないといけない。パラメータが多すぎる場合、メンバに配列をうまく使うしかない。


using UnityEngine;
using System.Collections;
using System.IO;

public class SaveData : MonoBehaviour {

    MySaveData saveData;
    MySaveData saveDataTest;
    string fileName="saveData1.dat";
    // Use this for initialization
    void Start() {
        saveData = new MySaveData{ a = 1,b=2,c=3 };
        saveData.Save(fileName);
	}
	
	// Update is called once per frame
	void Update () {
        if(Input.GetKeyDown(KeyCode.Return))
        {
            print("return key was pressed  :load");
            saveDataTest.Load(fileName);
        }
    }
}
public struct MySaveData
{
    public int a, b, c;
    public void Load(string file)
    {
        using (var r = new BinaryReader(File.OpenRead(file)))
        {
            a = r.ReadInt32();
            b = r.ReadInt32();
            c = r.ReadInt32();
            r.Close();
        }
    }
    public void Save(string file)
    {
        using (var w = new BinaryWriter(File.OpenWrite(file)))
        {
            w.Write(a);
            w.Write(b);
            w.Write(c);
            w.Close();
        }
    }
}