店舗のゲームデータをUnityとにBinaryFormatterバイナリ

バイナリ形式のシリアライゼーションおよびデシリアライゼーション中に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;//存档时间
}
	
公開された14元の記事 ウォンの賞賛0 ビュー419

おすすめ

転載: blog.csdn.net/a0_67/article/details/104845882