バイナリ形式のシリアライゼーションおよびデシリアライゼーション中にBinaryFormatter
配列:バイナリオブジェクトを変換するステップと、
デシリアライズ:バイナリオブジェクトに変換
System.Runtime.Serialization.Formatters.Binary:名前空間を参照
データストレージ方法:シリアライズ(FileStreamを、データ):指定されたオブジェクトにストリームシーケンス
デシリアライズ(FileStreamを):抽出されたデータメソッドオブジェクトにデシリアライズ指定されたストリーム
ここでは、コードです
//游戏存档工具类
public static class FileTool
{
///储存游戏数据文件的路径
private static string path
{
get
{
return GetPath();
}
}
/// <summary>
/// 设置文件的路径,
/// 在手机上运行时Application.persistentDataPath这个路径才是可以读写的路径
/// PC上可以放在StreamingAssetsPath中
/// </summary>
static string GetPath()
{
return Application.streamingAssetsPath + "/playerData.gd";
}
/// <summary>
/// 储存游戏静态方法
/// </summary>
/// <param name="fileName">存档的名称</param>
public static void SaveFile(string fileName)
{
//当前的数据
Data fileData = GetData();
//存档名称
fileData.fileName = fileName;
fileData.fileTimer = DateTime.Now;
//保存新数据
SaveData(fileData );
}
/// <summary>
/// 加载游戏
/// </summary>
public static void LoadDta()
{
Data fileData = GetData();
Debug.Log(fileData.fileName);
Debug.Log(fileData.fileTimer);
}
/// <summary>
/// 保存游戏数据
/// </summary>
/// <param name="data"></param>
public static void SaveData(Data data)
{
//保存数据
BinaryFormatter bf = new BinaryFormatter();
if (File.Exists(path))
{
File.Delete(path);
//Debug.Log("删除旧的");
}
//Debug.Log(path);
FileStream file = File.Create(path);
bf.Serialize(file, data);
file.Close();
}
/// <summary>
/// 获取储存数据
/// </summary>
/// <returns></returns>
public static Data GetData()
{
Data playerData;
//如果路径上有文件,就读取文件
if (File.Exists(path))
{
//读取数据
BinaryFormatter bf = new BinaryFormatter();
FileStream file = File.Open(path, FileMode.Open);
playerData = (Data)bf.Deserialize(file);
file.Close();
return playerData;
}
//如果没有文件,创建一个空文件并返回
else
{
playerData = new Data();
return playerData;
}
}
}
//要储存的游戏数据
//在里面生命类型就可以
[Serializable]
public class Data
{
public string fileName;//存档名
public string fileTimer;//存档时间
}