数据层(Data Layers)是世界分区系统中的一个子系统,用于将Actor划分到单独的层中。通过加载和卸载数据层,你可以塑造不同的场景效果。

借助数据层,你可以在关卡编辑器中动态地加载和卸载Actor,以此实现复杂的关卡效果。数据层可以由蓝图控制,并进而驱动游戏逻辑;此外,数据层是世界分区系统中的重要资产流送工具。
数据层将取代虚幻引擎老版本中的层级系统(Layer System)。
借助数据层,你可以在编辑器中将游戏逻辑类元素和场景资产分隔开来。美术师可以单独处理特定元素,不会受到游戏逻辑触发器或游戏对象的干扰。设计师则可以借助数据层的动态加载来实现更为有趣的游戏体验,并让关卡过度更加丰富多变。
将Actor添加到数据层
数据层大纲视图
要查看你的场景中的所有数据层,请打开窗口(Window)菜单并选择数据层(Data Layers)选项。这会打开数据层大纲视图。

序号 | 说明 |
---|---|
1 | 在关卡编辑器中切换关卡的可视性。仅当某个Actor所有关联数据层都隐藏时,它才能被隐藏。 |
2 | 表示"动态加载(Is Dynamically Loaded)"的状态。动态加载的层将会影响运行时的Actor加载。可以使用蓝图或C++代码激活这些层。 |
3 | 切换"编辑器动态加载(Editor Dynamically Loaded)"标记。在关卡编辑器中,如果Actor启用了数据层并且在世界分区中加载了编辑器单元格,将加载Actor。 |
4 | 切换此数据层中所有Actor的可见情况 |
5 | 决定启动时数据层是否在编辑器中显示。 |
6 | 决定是否应该为此数据层中的Actor生成HLOD。仅当启用"动态加载(Is Dynamically Loaded)"时可用。 |
7 | 决定启用了"动态加载(Is Dynamically Loaded)"的数据层在运行时加载、卸载还是激活。 |
8 | 决定数据层是否影响Actor的运行时加载。 |
右键点击数据层大纲视图将打开上下文菜单。

选择 | 说明 |
---|---|
创建空白数据层(Create Empty Data Layer) | 新建一个空的数据层 |
将选定的Actor添加到新数据层(Add Selected Actors to New Data Layer) | 创建新数据层并使用选定的Actor填充 |
将选中的Actor添加到选中的数据层(Add Selected Actors to Selected Data Layer) | 将视口中选定的Actor添加到选定的数据层。 |
从选定数据层移除选定Actor(Remove Selected Actors from Selected Data Layer) | 将视口中选定的Actor从选定的数据层中删除。 |
删除选定的数据层(Delete Selected Data Layer) | 删除选定的数据层。这不影响与已删除的数据层关联的Actor。 |
重命名选定的数据层(Rename Selected Data Layer) | 重命名选定的数据层。这不影响与已删除的数据层关联的Actor。 |
选择数据层中的Actor(Select Actors in Data Layers) | 选择与选定数据层关联的所有Actor。 |
将数据层中的Actor附加到选择(Append Actors in Data Layer to Selection) | 将选定数据层中的Actor添加到当前选择。 |
取消选择数据层中的Actor(Deselect Actors in Data Layer) | 将当前选择中的Actor从选定数据层删除。 |
使所有数据层可见(Make All Data Layers Visible) | 切换要在关卡编辑器中可见的所有数据层的可见性。 |
数据层新建后,有几种方法可以将Actor添加到其中:
-
使用数据层上下文菜单中的 将选定Actor添加到新数据层(Add Selected Actors to New Data Layer) 和 将选定Actor添加到选定数据层(Add Selected Actors to Selected Data Layer)。
-
将选定Actor从世界大纲视图拖到数据层大纲视图中的选定数据层中。
-
在Actor的细节(Details)面板的数据层(Data Layers)分段中设置
Actor的细节面板
可以在Actor 细节(Details) 面板的 数据层(Data Layers) 分段将Actor添加到一个或多个数据层中。

如需在细节(Details)面板中将Actor添加到数据层,请按照下面的步骤操作:
-
滚动到 细节(Details) 面板底部,然后打开 数据层(Data Layers) 分段。
-
然后,点击 + 按钮将一个条目添加到 数据层(Data Layers) 列表。
-
打开下拉菜单,然后从列表中选择数据层。
此外,你还可以将数据层从数据层大纲视图(Data Layers Outliner) 拖放到 细节(Details) 面板中的列表。
管理文件
由于遵循了 世界分区(World Partition) 系统的目标——将用户之间的文件冲突降到最低——数据层不再要求用户在进行更改时检出重要文件,例如地图文件或Actor文件。
每个数据层都有一个显示标签以及一个内部唯一的标识符。虚幻引擎将此信息存储在 WorldDataLayer 文件的数据层列表中。这样做具有以下优势:
-
将数据层指定给某个Actor时,只会影响该Actor的文件。这得益于在 世界分区(World Partition) 中使用 一Actor一文件(One File Per Actor)。
-
重命名数据层仅影响其关联的标签。不需要更新与数据层关联的任何Actor。
-
删除数据层仅影响 WorldDataLayer 文件。与被删除数据层关联的Actor将被自动清空,不需要修改或保存Actor。
结合数据层与蓝图
蓝图可以用于更改数据层的状态。
在下图中,使用了触发体积来控制数据层的状态。

在示例中,数据层的状态通过以下方式修改:
-
玩家进入或退出触发器区域。
-
这将触发 Set Data Layer State 函数节点,该节点会将数据层状态更改为 开始重叠状态(Begin Overlap State) 或 结束重叠状态(End Overlap State)。
数据层变量(上图3号)通过一个 Actor数据层(Actor Data Layer) 类型的变量公开。
可以使用数据层的标签而不使用变量来设置数据层的状态。但是,不建议这样操作,因为重命名数据层将更改其标签,并可能破坏蓝图。
转换老版本中的层级系统
将世界场景转换为使用世界分区系统时,上一代层级系统中的层级会被转换为数据层,并且该数据层会禁用 动态加载(Dynamically Loaded)。