关卡与关卡编辑器

自动关联目录:关卡与关卡编辑器

1. 定位

关卡(Level / Map)是世界的组织单元:Actor 的容器、光照场景的载体、也是 World Partition 流式的划分依据。

一句话定位:在 UE5 里,"关卡"这个词已经分裂成三层——持久关卡(Persistent Level)、流式子关卡(Streaming Level)、以及 World Partition 的网格单元。搞不清这三层,就会做出"改了不生效""打包后缺东西"的判断错误。

2. 三层结构

层次是什么谁管加载
Persistent Level永远存在的主关卡引擎
Streaming Level(子关卡)按需加载/卸载的子关卡Level Streaming(或手动)
World Partition 网格单元WP 自动切分的空间单元WP 流式系统

UE5 的推荐路径:新项目走 World Partition,不再手工切子关卡。旧项目或特殊需求才用子关卡。

3. 关卡编辑器工作流

项说明
Level 资产(.umap)关卡文件
OutlinerActor 列表,支持文件夹组织
Details选中对象的属性
World Settings关卡级设置(含 World Partition 设置、光照设置)
Layers / Data Layers分类与运行时开关
Location Volume编辑器专用的区域标记(见 WP 篇)

Actor 组织

手段用途
Outliner 文件夹编辑器内分组
Actor 标签 / Tag运行时查找(见 反射与 UHT)
Data LayersWP 下的运行时开关机制
Level Instance把一段关卡内容做成可复用实例
子关卡旧式组织

Level Instance 是复用场景片段的现代做法,比复制粘贴好维护得多。

4. World Settings 里值得注意的

设置作用
World Partition Setup运行时网格(Cell Size / Loading Range)
Enable StreamingWP 的流式开关(某些模板默认关闭)
光照相关Lightmass / 光照场景设置(见 光照与烘焙)
Force No Precomputed Lighting移除已有 lightmap(见 Lumen 篇)
GameMode Override覆盖游戏模式
导航相关NavMesh 边界与设置

5. 与 Gameplay 的关系

事项说明
GameMode 可在关卡里覆盖见 Framwork
关卡切换见 关卡与 World 流转(Travel / Streaming)
导航NavMesh 与关卡强绑定(见 AI 分支)
光照场景每个关卡一份光照场景设置

6. 代价与权衡

设计收益代价什么时候不该用
手工切子关卡控制精确多人协作冲突、看不到全貌新项目应选 WP
World Partition自动、协作友好需要理解 Is Spatially Loaded小关卡不必
Level Instance复用场景片段修改会波及所有实例一次性内容不必
Data Layers运行时开关内容(如昼夜、任务状态)增加一层配置内容不需要切换时不必
关卡蓝图方便引用的 Actor 变 Always Loaded(见 WP 篇)WP 世界里应尽量用 Blueprint Class

7. 踩坑与排查

坑现象怎么验证
用了 WP 模板但没有流式全部加载检查 World Settings 的 Enable Streaming
关卡蓝图引用导致常驻内存下不来检查关卡蓝图引用;改用 Blueprint Class
子关卡与 WP 混用行为混乱明确走一条路线
关卡切换后设置丢失每个关卡有自己的 World Settings检查是否在新关卡里也设了
打包后关卡缺内容Cook 没包含检查引用链与 Cook 设置
Actor 找不到未加载(WP 流式)Is Spatially Loaded 与当前区域
多人同时改关卡冲突用 OFPA(见 WP 篇)
Level Instance 改一处坏多处预期外的连锁修改确认是否该改成独立副本

8. 排查顺序

1. 内容没加载?→ 是 WP 就查 Is Spatially Loaded;是子关卡就查流式状态
2. 内存下不来?→ 关卡蓝图引用 / Always Loaded
3. 设置不生效?→ 是否在新关卡的 World Settings 里设了
4. 打包缺内容?→ 引用链 + Cook
5. 协作冲突?→ OFPA + Data Layers

参考