摘要:Intro UE的大部分content资产都放在了.PAK文件中,为了避免资产被破解,最好对文件进行加密。由于pak文件在运行时需要解密,所以运行时必然需要知道明文密码。或许是出于效率考虑,Unreal使用的是AES这种对称加密,也就是加密和解密使用的是相同的key。 如果把密码以明文的形式存储在文
阅读全文
摘要:观察 为了让庞大代码库看起来更简洁一些,UE使用了不少C/C++黑魔法:宏。把一些重复或者繁琐的实现细节隐藏在了宏里面(例如最为常见且繁琐的GENERATED_BODY宏),尽管代码看起来更简洁,但也隐藏了一些(重要的)细节。 在看UE插件实现时,意外的看到IMPLEMENT_MODULE宏定义中,
阅读全文
摘要:问题 在UE的代码中,经常可以看到对于父类类型的引用,因为很多情况下都要先调用父类的同名函数。例如随便看下UE的部分代码,在实现自己序列化函数的时候先调用基类的序列化函数。 但是,尽管Super是一个非常顺数的功能(在行为树库behaviac数中也有super定义),但是C++并没有实现这种功能。这
阅读全文
摘要:文档 对于一个(大型)软件来说,文档始终是一个重要功能。例如,vim内置的在线文档就十分轻便基于文本格式,使用普通编辑器查看也不影响阅读),这样让vim的使用非常丝滑。 UE作为一款游戏软件,同样内置了控制台命令,通过这些命令可以交互式执行控制台命令,查看/控制进程状态。更妙的是在输入的时候,控制台
阅读全文
摘要:问题 众所周知,UE的启动模块位于Engine\Source\Runtime\Launch文件夹,这个文件夹下包含了所有UE支持的平台类型,但是Launch.Build.cs文件并没有特殊的说明来确定使用哪个子文件夹的内容。 尽管从源代码组织结构上看可以想当然的知道只会选择当前构建平台,但是UE是如
阅读全文
摘要:# Config UE的很多配置是通过ini文件实现的,相对于二进制文件来说,ini文件的优点是读取、阅读、修改都非常方便,因为所有的文本编辑器都可以修改。但是UE中的ini文件可谓是眼花缭乱,在Engine、project文件夹下,同样的Engine.ini可能存在baseengine.ini、d
阅读全文
摘要:一、导航数据的构造 导航数据的主体来自几何图形,但是离线联通就不是来自几何图形,所以要额外处理。从软件实现的角度看,这个额外处理要具有通用性。UE通用是通过INavRelevantInterface和FNavigationRelevantData来实现,两个结构的名字也非常直观,一个是“导航相关接口
阅读全文
摘要:一、如何展示actor的属性 查看/修改一个对象的时候,我们都是在编辑器中打开地图,然后选中地图中的一个actor,右侧就会自动出现该actor对应的属性列表。下面是一个选中一个Actor对象时创建对应更新属性对象的调用链。可以看到,当选中一个Actor对象时,对于该对象的属性遍历是自动进行。由于U
阅读全文
摘要:一、问题 在一些简单的测试中,我们经常会把左侧的一些标准控件,例如Cube、Sphere、Cone、Plane等类型,放置到场景中进行测试。放进场景之后,我们还可以在Details面板中通过Location/Rotation/Scale三个维度对场景中的Actor进行修改。那么在默认(拖入场景中之后
阅读全文
摘要:一、问题 在UE中添加一些简单的蓝图接口,然后在蓝图编辑器中始终无法找到对应节点,无论是否勾选"Context Sensitive"。因为实现代码非常简单,简单到没有出错的可能,所以就觉得很神奇。好在尽管有很多乱七八糟的干扰信息,但是网上还是有答案https://forums.unrealengin
阅读全文
摘要:一、问题 在配置一个模块的时候,我们通常会指定一个模块的依赖。那么一个runtime类型的module能在依赖中包含Editor类型的module吗? 二、哪个Target.cs文件被使用 当在编译环境中选择一个构建目标时,当选择不同的“解决方案配置”时,构建时传递给UnrealBuildTool的
阅读全文
摘要:一、问题 在UE进程运行的时候,可以在控制台通过DumpConsoleCommands来列出UE中所有可执行的命令。从实现上看,UE中所有的控制台命令最终都会通过Engine\Source\Runtime\Core\Private\HAL\ConsoleManager.cpp: FConsoleMa
阅读全文
摘要:一、资产创建时 在将一个对象添加到资源文件的时候,会调用UObject中声明的GetAssetRegistryTags函数,不同的实现可以重新实现这个接口,从而完成自定义标签项的写入。/** Constructor taking a UObject. By default trying to cre
阅读全文
摘要:一、unreal文档中说明的层级关系 其实unreal文档对该内容有说明File HierarchyThe configuration file hierarchy is read in starting with Base.ini, with values in later files in th
阅读全文