UE4基础知识总结(四)

UE4基础知识总结(四),第1张

六、自动测试技术

1.自动测试分为简单测试和复杂测试,简单测试用来描述单个原子测试,复杂测试用来运行基于多个输入的相同代码。

2.简单测试可用来确认特定功能如预期般可 *** 作。一般都是单元测试或功能测试。

3.复杂测试可被用来对一系列物品迭代并对每个消橘物品运行相同的功能。一般就是内容压力测试。例如载入所有地图或编译所有蓝本。

4.当前的规则是将所有的自动测试放置到相关模块内的PrivateTests目录。测试文件命名为[ClassFilename]Test.cpp

5.这些测试通过应用RunTest()函数来单独定义其功能,而且Parameters字符串将保持为空字符串。

IMPLEMENT_SIMPLE_AUTOMATION_TEST( TClass, PrettyName, TFlags )

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() //对类进行设置,以支持引擎要求的基础结构。

}

正好我最近也在自学ue4,网搭数上有很多不错的零基础入门教程,比如B站上,学习的话建议目前学习最新版猜枝好本,好像是4.24吧,因为新版本汉化全面,有些功能比如工程新建和老版本有很大不同,基础功能都是一样的,从最基础的功能学起,比如如何在试图面板灵活 *** 作,如何导入模型,如果设置物理碰撞等,一步步来就可以了,后面最重要的就是蓝图,他是做游戏的关键,你会max基础,那么学ue4会很容易,因为穗铅有一些 *** 作和max很像

UE4蓝图虽说是可视化编程,但是终究离不开 数据类型,逻辑表达,类, 对象, 继承,多态等程序基础,只不过这些东西变成了可视化的节点模块方便调用,学习方法和学习传统的编程大致相同,先学习基础了解下蓝图支持的的数据类型有哪些,然后在学习逻辑表达式,数组,枚举的使用,掌握了这些基本上可以写个猜数字等小功能了,熟练这些就开始学习UE4的API方法,学习蓝图之间的通信机制,继承关系,不需要全面精通,把最常用的一些方法记住即可,熟练这些就算入门了,写个横版马里奥或3D跑小人基本上可以,掌握了这些在往上进阶就是使用蓝图与内置组件搭配,蓝图与C++搭配,蓝图的网络功能使用等,比如UE4的状态机,行为树,AI组件,联网组件等等,掌握到这些功能,基本上笑御掘你就可以开发一些相对复杂的游戏了,在往上这块学习重点不在局限与单纯的实现出来,重点在于结构算法与数据驱动拆和,会用到蓝图的继承封装多态设计模式等等功能,重点在于逻辑设计而非逻辑实现,在往上进阶就是为蓝图开发插件,自定义蓝图的工作碰核流,达到这个级别其实已经超出普通的UE4工程师范围,更像是职业的C++工程师了,甚至已经超出大半传统游戏软件程序员的开发能力了!


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

原文地址: http://outofmemory.cn/yw/12520015.html

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

发表评论

登录后才能评论

评论列表(0条)

保存