前言:这大半年其实没有怎么更新博客,对于自己的博客其实大部分都是一些基础教学性质的文章,真正探索性质和比较深入的内容其实很多都并没有发表出来,我想以后单独出些教学视频或资料和大家交流
这篇文章是自己写工具时遇到的一个问题,由此而写。看到这篇文章就不用再看其他文章了,因为都没有这方面的资料
介绍下目前ue4的静态Struct和DataTable的关系
先看一张excel表导入到ue4的过程:
这是一张excel的数据,其中包含了字段名和数据
在ue4中我们也要创建一个结构体
在结构体中定义好和excel一致的字段和类型
在创建DataTable时选择该结构体,才能确定每一行Row的含义和类型
可是这样有什么缺点呢?
如果一个结构体删除一个字段,增加一个字段,那手动改结构体会不会很麻烦?如果有一千张excel表格都要导入到DataTable,岂不是要先定义好一千个结构体,如果哪个结构体有问题,策划要检查该excel对应的struct,岂不是增加工作成本?
因此使用ue4的反射机制,根据策划在excel中定义好的类型,在导入成DataTable时动态生成该结构的struct并生成DataTable,将每一行的数据插入进来,自动迁出提交到svn或者git,岂不美哉?
基于ue4反射机制生成的动态struct
我们在excel中的前五行插入元数据,真正的数据从start行开始到end行结束,在前五行的第三行是表示每一列的数据类型,我们在导入到ue4中时需要解析类型并动态创建结构体,为这个结构体添加每一列的类型即可
那么怎么做?怎么做?
我们知道ue4最大的弊端就是木有文档,资料太少,只能看源码,我们来看下ue4中创建一个struct调用的是哪个模块
通过断点发现,在点击structure的一瞬间会调用