UE4基础知识总结(四)
六、自动测试技术
1.自动测试分为简单测试和复杂测试,简单测试用来描述单个原子测试,复杂测试用来运行基于多个输入的相同代码。
2.简单测试可用来确认特定功能如预期般可操作。一般都是单元测试或功能测试。
3.复杂测试可被用来对一系列物品迭代并对每个物品运行相同的功能。一般就是内容压力测试。例如载入所有地图或编译所有蓝本。
4.当前的规则是将所有的自动测试放置到相关模块内的PrivateTests目录。测试文件命名为[ClassFilename]Test.cpp
5.这些测试通过应用RunTest()函数来单独定义其功能,而且Parameters字符串将保持为空字符串。
6.简单测试使用IMPLEMENT_SIMPLE_AUTOMATION_TEST宏来进行声明:
IMPLEMENT_SIMPLE_AUTOMATION_TEST( TClass, PrettyName, TFlags )
7.复杂测试使用与简单测试声明宏类似的宏:
IMPLEMENT_COMPLEX_AUTOMATION_TEST( TClass, PrettyName, TFlags )
七、编码规范
1.编码规范对于程序员来说非常重要,原因如下:
a.一套软件80%的生命周期都是维护。
b.在软件的整个生命周期中,几乎不可能一直是软件的原始作者来对其进行维护。
c.编码规范可以改进软件的可读性,从而使得工程师可以快速并透彻地理解新的代码。
d.如果我们决定将源代码公布到 MOD 开发者社区,那么我们想让它通俗易懂。
e.大部分编码规范实际上是交叉编译器兼容性所要求的。
2.变量、方法及类的名称应该清晰、明确且具有描述性。
3.注释应该是辅助加强代码的,代码是功能实现,注释表明了代码的目的。
八、对象
1.虚幻引擎中的对象基础类为UObject。UCLASS宏可用于标记从UObject派生的类,使UObject处理系统识别到它们。
2.UCLASS宏为UObject提供一个对UCLASS的引用,描述其基于虚幻引擎的类型。
3.每个UCLASS保留一个称作"类默认对象(Class Default Object)"的对象,简称CDO。
4.新建UObject示例的函数有:
a.NewObject() 创建一个自动生成命名的新实例。在简单情况下使用最佳。
b.NewNamedObject() 使用特定命名以及其他几项任选参数创建一个新实例。将判断新实例的Outer中是否存在命名冲突。
c.ConstructObject() 创建一个提供所有可用创建选项的新实例。仅限需要灵活性时使用。
d.new 用于在特定低层情况下构建对象,如构建函数需要参数时。
5.UObjects提供的功能有:
a.垃圾回收:虚幻引擎实现了一个垃圾回收方案,定期清理不再被引用或被显式标记为待销毁的 UObject。
b.引用更新:对象被垃圾回收清理时,对它的UPROPERTY引用将自动被更新为 NULL。
c.映象
d.序列化:当一个 UObject 被序列化时,所有 UProperty 数值将被自动书写或读取。
e.默认属性变化自动更新:UClass 的CDO发生变化时,引擎将尝试把这些变化智能应用到类的所有实例上(在它们被加载时)。
f.自动属性初始化:初始化时,在构建函数被调用之前,UObject 将被自动清零。
g.自动编辑器整合:编辑器理解 UObjects 和 UProperties,还可将这些数值自动公开进行编辑,而无需编写特殊代码。
h.运行时类型信息可用:UObject 明确其为何种 UClass,运行时可作出类型相关的决定。
i.网络复制:UObject 系统包括一个稳定的功能集,实现网络通讯和多人游戏。
6.UObjects的头文件格式:
#include "Object.h"
#include "MyObject.generated.h"
UCLASS() //UCLASS 宏使虚幻引擎 4 能识别 UMyObject。
class MYPROJECT_API UMyObject : public UObject //如 MyProject 希望将 UMyObject 类公开到其他模块,则需要指定 MYPROJECT_API。
{
GENERATED_BODY() //对类进行设置,以支持引擎要求的基础结构。
};
联通为什么和电信的差距也越来越大了?作为一名基层员工,感触最深的就是大量农村区域宽带覆盖薄弱,没有办法做家庭融合,眼睁睁看着友商轻松挖走,差距越拉越大。联通迟早要嗝屁!!!!联通缺乏定力和战略,领导换的特别勤,一换领
数字技术的人机关系视角这一部分,我们从人机关系的视角理解数字技术的原理,并用控制论的思想统领自动化信息化和智能化技术。在技术进步的过程中,为了解释新技术新思想新趋势与过去的差异,人们提出了很多的新概念。
金融科技人才需求与发展报告(2021年)正式发布金融科技人才需求与发展报告核心观点1。人才批量招聘成为行业类招聘独树一帜的亮点调研发现1000人以上规模金融机构和企业,60的企业每年招聘达200人以上,金融科技类型人才占比单位总
中国拟扩建充电设施满足逾2000万辆电动汽车需求来源中国新闻网中新社北京1月21日电中国国家发改委等多部门日前就进一步提升电动汽车充电基础设施服务保障能力发出实施意见。意见要求,到十四五末,中国电动汽车充电保障能力进一步提升,形
中年男人失业,滴滴,外卖,保安三选一,怎么选?滴滴时间相对可控,自由度大外卖自由度小,情感上耐受度较低保安,工资稳定,情感上耐受度最低,时间长。看你的需求是什么。除了保安不选,其它两个都可以,相比之下,保安最没有前途,滴滴或者
时隔多年iPhone14迎来挖孔屏,却被魅族暖心举动抢走风头苹果公司作为手机行业里的龙头,主打的iPhone手机热度一直不低,大家也都格外关注每年的新品,距离今年iPhone的秋季发布会还有八个多月,iPhone14却提前登上了热搜,这次是
有没有闲人可以做的兼职推荐?看你的收入要求了。简单的,一天几十块,不投资不出门,手机就行,趣闲赚众人帮之类,做做任务,拿佣金。复杂的,费点脑子,有的要投入了。找不到合适的兼职就先想办法提升自己!UU跑腿,空闲
来头条是为了学习还是为了搞钱?这个不想说。我刚来头条一直就是刷金币,顺便看看很多正能量,学习了很多,有搞笑的,至理名言。看看电影,一就三得,可以娱乐还可以刷金币,还可以学习,学以致用。但突然有一天我发现了自己可
儿子在中南大学读研三,想回老家甘肃兰州这边工作,他选择对吗?还是去兰州吧,北上广虽然见识广,机会多,但竞争更大。人生短短几十年,你真的能躺在晒进阳光的客厅里的沙发上看着你的儿子睡在地下室吃着泡面,或者最多跟别人挤在一个还没有你家卫生间大的小
想换个苹果的手机,哪个适合学生党?目前128GB的苹果13和苹果12,在官网只差400元,预算够高就上13,或者13P,性价比还可以,如果预算有限,4000左右可以考虑苹果11,线下能找到未拆封的XR也可以,一定要
盐城为什么别称瓢城?盐城历史有记载的最早的名字叫盐渎,渎就是沟渠水道的意思。所谓盐渎,指专门用来运输食盐的河道。盐渎因此成为盐城最早的地名。公元411年以前,盐渎尽管有县治,但是有治无城。东晋义熙七年