Unity序列化和反序列化——二进制、JSON、XML

序列化可以将对象转换为字节序列后存储在数据库、内存或者文件中;

File类

静态类,对文件进行操作,静态方法提供文件的创建、复制、剪切、打开,可以直接赋值到FileStream类。命名空间为System.IO

FileStream类

用来读取和写入操作系统文件,将文件的内容以字节流的形式呈现出来进行操作,可以读取(Load)、写入(Save)、关闭(Close)文件流,用完记得关闭文件流;

BinaryFormattter类

以二进制格式序列化和反序列化对象。通常数据会保存到硬盘中,所以即使之后推出运行模式,加载数据文件同样可以读取数据。
BinaryFormattter.Serialize(Stream,Object):将对象序列化到给定的流;
BinaryFormattter.DeSerialize(Stream):将指定的流反序列化成对象,即读取的过程;

二进制方法

二进制方法阅读性差,兼容性不高;
不用挂到物体,不继承monobehaviour;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


//所有需要保存的数据声明在这个类,其他脚本调用时声明实例即可;
[System.Serializable]
public class Save
{
   
    public float posX;
    public float posY;
}

脚本挂到物体上,添加两个按钮试一下效果

using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using UnityEngine;
using UnityEngine.UI;

public class GameControl : MonoBehaviour
{
   

    public GameObject save;
    public GameObject load;

    private void Awake()
    {
   
        save = GameObject.Find("ButtonManager/Canvas/Save");
        load = GameObject.Find("ButtonManager/Canvas/Load");
        save.GetComponent<Button>().onClick.AddListener(SaveBySerialization);
        load.GetComponent<Button>().onClick.AddListener(LoadByDeserialization);
    }

    private Save CreateSaveGameObject() {
   
        Save save = new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值