YuminekoGame
1/25/2020 - 6:11 PM

MessagePackIO

using System;
using System.IO;
using MessagePack;
using UnityEngine;

public class MessagePackIOSample {
    private PlayerData _playerData = new PlayerData ();
    private static readonly string _filePath = Application.dataPath + "/SaveData" + ".bin";

    /// <summary>
    /// セーブファイルを作成・上書きする。失敗したらfalseを返す
    /// </summary>
    bool Save () {
        //  PlayerData -> Message Pack(シリアライズ)
        byte[] msgPack = MessagePackSerializer.Serialize (_playerData);

        try {
            //  ファイルへ書き込み
            File.WriteAllBytes (_filePath, msgPack);
            return true;
        }
        //  失敗した時の処理
        catch (Exception e) {
            Debug.Log (e);
            return false;
        }
    }

    /// <summary>
    /// セーブファイルを読み込む。失敗したらfalseを返す
    /// </summary>
    bool Load () {
        byte[] msgPack;
        try {
            //  ファイルを読み込み
            msgPack = File.ReadAllBytes (_filePath);

            //  Message Pack -> PlayerData(デシリアライズ)
            _playerData = MessagePackSerializer.Deserialize<PlayerData> (msgPack);

            return true;
        }
        //  失敗した時の処理
        catch (Exception e) {
            Debug.Log (e);
            return false;
        }
    }
}