1. UE4基础知识总结(四)
六、自动测试技术
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() //对类进行设置,以支持引擎要求的基础结构。
};
2. UE4动不动就编译shader,能改吗
嵌入是可以的,但每次还是要重新编译的。CG是角本,只能在执行才能被编译。
MS提供了这个函数。你可以先把你的CG角本加到资源管理器中。然后用名称引用到你的程序中。详细你看下这个函数的文档吧。D3DXCompileShaderFromResource();
3. 要使用虚幻引擎UE4或者UE5编辑蓝图需要安装什么visual studio组件 包括C++组件
必须安装基本运行框架才能使用。
Visual Studio 核心编辑器(Visual Studio Community 2017 随附)
ID: Microsoft.VisualStudio.Workload.CoreEditor
说明: Visual Studio 核心 shell 体验,包括语法感知代码编辑、源代码管理和工作项管理。
Azure 开发
ID: Microsoft.VisualStudio.Workload.Azure
说明:用于开发云应用、创建资源以及生成包括 Docker 支持的容器的 Azure SDK、工具和项目。
数据存储和处理
ID: Microsoft.VisualStudio.Workload.Data
说明: 使用 SQL Server、Azure Data Lake 或 Hadoop 连接、开发和测试数据解决方案。
数据科学和分析应用程序
ID: Microsoft.VisualStudio.Workload.DataScience
说明: 用于创建数据科学应用程序的语言和工具(包括 Python、R 和 F#)。
.NET 桌面开发
ID: Microsoft.VisualStudio.Workload.ManagedDesktop
说明: 使用 C#、Visual Basic 和 F# 生成 WPF、Windows 窗体和控制台应用程序。
使用 Unity 的游戏开发
ID: Microsoft.VisualStudio.Workload.ManagedGame
说明: 使用 Unity(功能强大的跨平台开发环境)创建 2D 和 3D 游戏。
使用 C++ 的 Linux 开发
ID: Microsoft.VisualStudio.Workload.NativeCrossPlat
说明: 创建和调试在 Linux 环境中运行的应用程序。
使用 C++ 的桌面开发
ID: Microsoft.VisualStudio.Workload.NativeDesktop
说明:使用 Microsoft C++ 工具集、ATL 或 MFC 生成 Windows 桌面应用程序。
使用 C++ 的游戏开发
ID: Microsoft.VisualStudio.Workload.NativeGame
说明: 以 DirectX、Unreal 或 Cocos2d 为后盾,利用 C++ 的强大功能生成专业游戏。
使用 C++ 的移动开发
ID: Microsoft.VisualStudio.Workload.NativeMobile
说明: 使用 C++ 生成适用于 iOS、Android 或 Windows 的跨平台应用程序。
4. 虚幻4引擎mac版打包ios,出现这个编译错误,到底是为什么用引擎默认的蓝图也同样报错。
虚拟引擎一直以高画质、华丽的光影等为人称道,大家一直都在期待虚幻4引擎打造的华丽大作。可是,万万没想到首款由虚幻4引擎制作的手游竟然是这样一款“渣作”。 近日,《无尽之剑》和虚幻引擎的打造者Epic
5. 如何通过编译源代码获得ue4编辑器
在windows上需要win7及以上版本64位系统,安装vs2013以上版本(,建议2015,2013能不能编译4.13及以后版本不清楚,我只编译到4.12,新版还没试过),安装dxsdk,并配置好dx的环境。
下载ue4源代码,官网和启动器上都有。
不要把引擎文件夹放在非常深的文件加目录里面,建议放在磁盘根目录或者根目录下的一层的文件夹里,要不然会有的文件路径太长影响效率,甚至会出现莫名其妙的报错,另外磁盘需要有40g以上的空间。
然后运行setup,需要下载几个g的依赖,完成后可以生成工程,然后用vs打开就可以编译了。
依据电脑性能需要时间半小时到两个小时不等,一般两小时之内可以搞定。
然后在Engine\Binaries\Win64文件夹里面找ue4editor.exe打开就可以了。首次打开会比较慢。
以上为windows的方法,如果需要其他平台的方法,可以追问。