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

男女做暖暖的网站大全养生网站建设免费

男女做暖暖的网站大全,养生网站建设免费,为什么说能进中交不进中建,WordPress百度收录代码前言 序列化(Serialize)和反序列化(UnSerialize)是程序领域常见的概念。对于这两个词汇我理解的是 序列化(Serialize): 变量值(int, float, string等基本类型, 或者Array#xff0c;Map#xff0c;或者更复杂的复合体)存储为一个文件(二进制流, 二进制文件, json, xml等格式…前言 序列化(Serialize)和反序列化(UnSerialize)是程序领域常见的概念。对于这两个词汇我理解的是 序列化(Serialize): 变量值(int, float, string等基本类型, 或者ArrayMap或者更复杂的复合体)存储为一个文件(二进制流, 二进制文件, json, xml等格式)。 反序列化(UnSerialize): 读取文件来复原变量值。 UE4的序列化 FArchive简介 UE4的序列化一个比较核心类是FArchive, 这个类定义了对大部分基础变量类型的序列化和反序列化接口。这里得注意是FArchive的operator接口既包含了序列化也包含了反序列化。判断是operator 此时运行的状态是序列化还是反序列化可以通过接口IsLoading(反序列化)和IsSaving(序列化)。这些接口不一定有实际的实现, 很多实现是在FArchive子类里。 FArchive核心接口--void Serialize(void* V, int64 Length) 这个接口是大多数类型序列化的底层主要是面向一段内存进行读/写到FArchive. 我们自定义复杂类型的数据序列化时经常和这个接口打交道. 得注意的是Length是内存byte的个数。用法和FMemory::Copy类似。 UObject序列化 UObject的序列化也是通过FArchive, UObject被UProperty标记的变量会自动参与到序列化中。背后有一套管理机制后续再深入篇在分析。 UObject序列化接口--void Serialize(FArchive Ar) virtual void Serialize(FArchive Ar); 保存和加载UObject对象都会触发Serialize, 对于UObject未被UProperty标记的变量又需要存储到UObject的可以Override这个接口来自定义 对复杂类型变量自定义序列化 对于部分复杂变量类型, FArchive接口和UE其他模块没有提供的。我们只能手动自定义序列化流程. 变量类型序列化也是分解为上门的基础序列化接口. 下面讲两个经典案例 案例一: 自定义Struct序列化 struct TestStruct {int a;float c; }FArchive Ar; TestStruct test;// 调用 FArchive operator (int value) Ar test.a; // 调用 FArchive operator (float value) Ar test.c; 案例二: TArrayint32数组序列化 对于一个UObject里没有被UPROPERTY标记的TArrayint32序列化。 UCLASS() class TESTARCH_API ATest : public AActor {GENERATED_BODY()public: // Sets default values for this actors propertiesATest();UFUNCTION(CallInEditor)void TestWrite();UFUNCTION(CallInEditor)void TestPrint();TArrayint32 Data;public:virtual void Serialize(FArchive Ar) override; }; // Sets default values ATest::ATest() {// Set this actor to call Tick() every frame. You can turn this off to improve performance if you dont need it.PrimaryActorTick.bCanEverTick true; }void ATest::TestWrite() {Data.Empty();for(int32 Index 0; Index 10; Index){Data.Add(Index);} }void ATest::TestPrint() {for(int32 Index 0; Index 10; Index){if(Data.IsValidIndex(Index)){UE_LOG(LogTemp, Error, TEXT(%d), Data[Index]);}} }void ATest::Serialize(FArchive Ar) {Super::Serialize(Ar);// 反序列化(加载)if(Ar.IsLoading()){int32 Num 0;Ar Num;if(Num 0){Data.Init(0, Num);Ar.Serialize(Data.GetData(), sizeof(int32) * Num);}}// 序列化(保存)else{int32 Num Data.Num();Ar Num;if(Num 0){Ar.Serialize(Data.GetData(), sizeof(int32) * Num);}} }; 对于很多基础类型我们经常能轻易使用 Operator  就同时处理了序列化和反序列化, 这是因为UE4 FArchive底层已经帮我们处理好两种情况下的逻辑显得很简单。但是对于FArchive接口未覆盖的复杂类型, 需要我们手动实现相应接口时, 基本是需要分为序列化和反序列化两种情况来进行处理。
http://www.dnsts.com.cn/news/68098.html

相关文章:

  • 国外psd网页模板网站营销案例100例小故事
  • 网站从域名wordpress怎么添加统计代码
  • wordpress优化网站打开速度眼镜网站建设
  • 郑州 网站设计山西路桥建设集团网站
  • 杭州百度网站建设2019年开公司做网站可以吗
  • 交通建设工程质量监督局网站营销网站制作全包
  • 水利建设专项收入在什么网站上申报网站推广方法主要有
  • 广西公司做网站兰州装修公司哪家好
  • 数字营销网站网站的访问速度
  • 商丘网站开发公司个人网站欣赏的网站
  • 西安SEO网站建设哪家好泉州网站设计平台
  • 外贸做网站建设哪家好制作酒店网站
  • 潍坊市做网站岳阳网站建设渠道
  • 网站被加入js广告微信小程序开通支付功能
  • 淘宝网站可以做百度快照吗河南建设人才教育信息网
  • 比格设计网站官网网站单页支付宝支付怎么做的
  • 网站建设做网站费用网站备案主体 被拉黑
  • 做海报的网站有哪些内容莆田网站建站
  • 金石文化规划 设计 开发风景区网站建设腾讯云搭建网站
  • 网站开发背景怎么写asp评价网站开发文档
  • 做短租有哪些网站建设制作外贸网站公司
  • 网站建设费的账务处理苏州网站建设上往建站
  • 常州网站建设怎么样wordpress内容评论可见
  • 家居网站建设全网营销上海专业网站建
  • 建设网站是几个步骤互联网下的网络营销
  • 哈尔滨网站建设好wordpress 活动
  • 做网站的那些高清图上哪里找wordpress 执行sql
  • 强企网做网站asp.net做音乐网站
  • 做网站泉州合肥企业网站建设公司
  • 优秀设计方案网站给你一个网站怎么优化