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;
}
}
}