Choose your operating system:
Windows
macOS
Linux
由于数据注册表包含在插件中,因此需要一些设置才能使用它。
数据注册表(Data Registry)
是一种高效的全局存储空间,用于存储带有
USTRUCT
标记的数据结构。
数据注册表支持同步和异步数据访问,还支持用户自定义缓存行为。它们主要处理常规的只读数据。
如果是基于特定会话的数据,例如情节进展或角色的当前状态,请使用引擎的"保存游戏(Save Game)"系统。
你可以将数据注册表设置成为从不同源头加载或生成数据,还可以通过资产扫描和手动注册来填充。
数据注册表类似于 复合数据表(Composite Data Tables) ,但除了标准的表格数据行之外,还可以存储曲线数据。此外,它使用一个间接层,而不是手动将多个表格合并在一起。
数据源
数据注册表源
元数据注册表源
标识符
数据注册表插件使用独有的标识符来查找数据注册表以及其中包含的单个数据项。
这些标识符本质上都是基于字符串的
名称
,不过
FDataRegistryType
(用于数据注册表资产)和
FDataRegistryId
(用于数据注册表中的单个数据项)结构却属于包装器(wrapper),能提供实用的编辑器内部功能。
FDataRegistryType
用于辨识数据注册表资产,
FDataRegistryId
用于辨识数据注册表和其中的特定数据项。如果你需要查找数据注册表资产或从中检索单个数据项,可以使用这些标识符类型。
每个数据注册表资产都必须在 注册表类型(Registry Type) 字段中具有唯一名称;如果两个数据注册表资产在此字段中具有相同的名称,系统将仅识别和填充其中一个。
类似的,如果多个数据项共用同一个标识数值(名称或Gameplay标签),注册表会读取所有项,但检索操作将仅访问数据注册表资产加载的第一个数据项;关于数据项的加载顺序,请参见 数据源 部分。
使用C++的开发人员可以通过创建子数据注册表类和重载
ResolveDataRegistryId
函数来更改此行为。
数据注册表资产标识符
数据项标识符
如果编辑某个数据注册表资产,在通过数据项标识符引用该资产的其他资产中,你的更改可能不会立即生效。
如果发生这种情况,可能是因为数据项标识符在其下拉列表中包含废弃的数据行。
在引用数据注册表(而不是数据注册表资产自身)的资产中点击 编译(Compile) 按钮,可以使用最新的数据项信息更新界面。
由于
FDataRegistryId
包含一个
FDataRegistryType
成员变量(名为
RegistryType
),因此不需要单独的
FDataRegistryType
标识符就可以找到包含数据行的数据注册表资产。
快速函数参考
以下函数对于你快速掌握数据注册表很有帮助。
此处并未列出完整信息,但列出了你在项目中设置数据注册表后,访问数据时需要用到的基本函数。
与游戏功能集成
数据注册表插件可以添加来自游戏功能插件的数据注册表和单个数据注册表来源。如需相关流程的详细信息,请参见
InteractiveExperiences/DataDriven/DataRegistries\DataRegistries-CPP\DataRegistries-CPP.INT.UDN
availability: docs title: Data Registries CPP description: Data Registries CPP Excerpts parent: BuildABiggerWorld/DataRegistries type: reference
InteractiveExperiences/DataDriven/DataRegistries\DataRegistries-BP\DataRegistries-BP.INT.udn
availability: docs title: Data Registries BP description: DataRegistries BP Excerpts parent: BuildABiggerWorld/DataRegistries type: reference