当前位置: 首页 > news >正文

电子商务网站建设李洪心课后答案企业查查官网入口官网

电子商务网站建设李洪心课后答案,企业查查官网入口官网,蛋糕网站模板,wordpress二次打开序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程。序列化最主要的用途就是传递对象和保存对象。 在Unity中保存和加载、prefab、scene、Inspector窗口、实例化预制体等都使用了序列化与反序列化。 1 可序列化类型 1> 自定义的具有Serial…

序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程。序列化最主要的用途就是传递对象和保存对象。
在Unity中保存和加载、prefab、scene、Inspector窗口、实例化预制体等都使用了序列化与反序列化。

1 可序列化类型

1> 自定义的具有Serializable特性的非抽象、非泛型类(所有继承UnityEngine.Object的类都具有Serializable特性,如MonoBehaviour)
2> 自定义的具有Serializable特性的结构体(Unity内置结构体类型都都具有Serializable特性)
3> 可序列化类型的数组和列表(如int、string列表),栈、队列、字典等都不能被序列化
4> 枚举类型

2 Unity中的序列化和反序列化

最直观的就是在Unity中的检视面板可以看到字段就是被成功序列化了的参数,与序列化相关的常用关键字有SerializeField,HideInInspector,NonSerialized,Serializable :
1> SerializeField : 表示变量可被序列化,SerializeField与private,protected结合使用可以达到让脚本的变量在检视面板里可视化编辑,同时保持它的私有性的目的
2> HideInInspector : 将原本显示在检视面板上的序列化值隐藏起来
3> NonSerialized :将一个公有变量不序列化并且不显示在检视面板中
4> Serializable:用在类的前面,表示该类可被序列化,Serializable不会被派生类所继承,每个类想要被序列化需要单独加Serializable特性

3 通过二进制序列化与反序列化

使用二进制序列化时,每个类都需要Serializable标识
只有通过二进制进行序列化和反序列化时才能调用到OnSerializing、OnSerialized、OnDeserializing、OnDeserialized这四个特性

using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using System.IO;
using System;
using System.Runtime.Serialization.Formatters.Binary;public class Test : MonoBehaviour
{/// <summary>/// 序列化二进制/// </summary>public static bool BinarySerialize(string outputPath, object obj){if (!IOUtils.IsFile(outputPath)){Debug.LogError($"序列化二进制失败,输出路径有误,filePath:{outputPath}");return false;}try{string dirPath = Path.GetDirectoryName(outputPath);if (!Directory.Exists(dirPath)){Directory.CreateDirectory(dirPath);}using (FileStream fs = new FileStream(outputPath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)){BinaryFormatter binaryFormatter = new BinaryFormatter();binaryFormatter.Serialize(fs, obj);}}catch (Exception e){Debug.LogError($"序列化二进制失败,{e}");return false;}return true;}/// <summary>/// 反序列化二进制/// </summary>public static T BinaryDeserialize<T>(string binaryFilePath){if (!File.Exists(binaryFilePath)){Debug.LogError($"反序列化二进制失败,找不到二进制文件:{binaryFilePath}");return default;}T obj = default;try{using (FileStream fs = File.OpenRead(binaryFilePath)){BinaryFormatter binaryFormatter = new BinaryFormatter();obj = (T)binaryFormatter.Deserialize(fs);}}catch (Exception e){Debug.LogError($"反序列化二进制失败,{e}");return obj;}return obj;}
}

4 通过Json序列化与反序列化

使用Json序列化时,第一层类不需要Serializable标识,其他类都需要Serializable标识

using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using System.IO;
using System;public class Test : MonoBehaviour
{[MenuItem("Tools/JsonSerialize")]private static void JsonSerialize(){People p = new People();Name name = new Name();name.name1 = "l";name.name2 = "hw";p.name = name;p.age = 26;string jsonString = JsonUtility.ToJson(p);string path = Application.
http://www.yayakq.cn/news/435031/

相关文章:

  • 陕西的网站建设公司排名网站营销活动页面制作
  • 网站推广行业企业门户系统
  • 珠海专业的免费建站品牌推广宣传词
  • 郑州公司网站平台建设什么叫关键词
  • 山东网站备案公司吗网站建设漳州
  • 集团公司网站怎么做企业做增资 网站平台
  • 有域名如何做网站怎样加强文化建设
  • 程序员建网站上传文档的网站
  • 长春火车站在哪个街道php做简单网站教程视频
  • 文字代码生成器内江网站seo
  • 珠海定制网站制作信息部网站建设工作计划
  • 网站注册费用需要多钱wordpress恢复旧的编辑页面
  • 做网站找浩森宇特wordpress搬家出现404
  • 创建网站 英文做seo用哪种建站程序最好
  • 网络营销做女鞋的网站设计网站备案多久通过
  • 多语言外贸网站设计使用他人商标做网站搜索词
  • 搭建网站需要备案吗相册网站建设目的
  • 郑州诺耀科技 - 郑州高端网站建设营销推广上海企业咨询公司
  • 建设银行官方网站面试详细信息公众号开放平台
  • 个人域名备过案了做电影网站会查吗网站建设合优
  • 打不开建设银行网站做视频网站 许可证
  • 教育课程网站建设重庆做网站公司排名
  • 大型购物网站服务器云服务器防御
  • 同里做网站建设网站番禺
  • 全国免费自学网站有哪些做外贸 建网站要注意什么
  • 涉县移动网站建设公司凡科建站小程序
  • 平面设计网站源码泸州做网站的公司有哪些
  • 中国排名高的购物网站中卫网络工程招聘
  • 广东哪家网站建国外网站要备案吗
  • html设计主题网站代码广州制作网站的公司