UE4对象系统_序列化和uasset文件格式

UE4对象系统_序列化和uasset文件格式,第1张

虚幻的序列化这块是个人比较喜欢的技术点,个人在工作中也山寨了个简化版,UE4延续了UE3的序列化方案。它使用了访问者模式(Vistor Pattern),将序列化的存档接口抽象化,其中FArchive为访问者, 其它实现了void Serialize( FArchive&Ar )接口的类为被访问者。FArchive可以是磁盘文件访问, 内存统计,对象统计等功能。

FArchive的类继承体系如下:

定义接口如下:

通过重载operater <<来实现对数据的访问。

下面为调试时的几张堆栈图:

UE中使用统一的格式存储资源(uasset, umap),每个uasset对应一个包(package),存储一个UPackage对象时,会将该包下的所有对象都存到uasset中。UE的uasset文件格式很像Windows下的DLL文件格式(PE格式),并且使用起来神似(下一节分析Linker)。

导入表条目FObjectImport

导出表的条目FObjectExport

你可以尝试使用一些文本编辑器,如Sublime Text,Atom,Vim等来打开源文件,然后编辑它们。另外,你也可以使用一些IDE(集成开发环境),如Visual Studio Code,Eclipse,PyCharm等来打开和编辑源文件。

系统bug。UAsset5.0Browser是一个资源导入查看工具的插件,能够更好地帮助办公人士整理资源文件。该插件在uasset导入后是空的是系统bug的原因,只需要将该软件卸载重新打开即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11955768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存