网上找到一些方法,二进制序列化现对于json不可视,稍加改进封装了下,代码具体如下
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System;
using System.Runtime.Serialization.Formatters.Binary;
public class SerializeTHFile
{
public static void SerializeMethod<T>(T tempSerializeList) // 二进制序列化
{
//路径
string path = Application.isEditor ? Application.persistentDataPath.Replace("/" + Application.productName, "") : Application.persistentDataPath;
path += "/保存文件名称" ;
FileStream fs = new FileStream(path, FileMode.Create);
try
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, tempSerializeList);
fs.Close();
}
catch (Exception ex)
{
fs.Close();
Debug.Log(ex);
}
}
public static T DeserializeMethod<T>() // 二进制反序列化
{
T tempDeserializeList ;
string path = Application.isEditor ? Application.persistentDataPath.Replace("/" + Application.productName, "") : Application.persistentDataPath;
path += "/读取文件名称" ;
FileInfo binaryFile = new FileInfo(path);
if (!binaryFile.Exists)
{
Debug.Log("反序列化文件不存在");
return default(T);
}
FileStream fs = new FileStream(path, FileMode.Open);
try
{
BinaryFormatter bf = new BinaryFormatter();
tempDeserializeList = (T)bf.Deserialize(fs);
fs.Close();
return tempDeserializeList;
}
catch (Exception ex)
{
Debug.LogWarning(ex);
fs.Close();
File.Delete(path);
return default(T);
}
}
}

本文介绍了一种在Unity中实现二进制序列化的方法,包括如何将对象序列化为二进制文件以及如何从二进制文件中反序列化回原始对象。此方法适用于需要高效存储和读取游戏数据的场景。
1035

被折叠的 条评论
为什么被折叠?



