关卡与关卡编辑器
自动关联目录:关卡与关卡编辑器
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) | 关卡文件 |
| Outliner | Actor 列表,支持文件夹组织 |
| Details | 选中对象的属性 |
| World Settings | 关卡级设置(含 World Partition 设置、光照设置) |
| Layers / Data Layers | 分类与运行时开关 |
| Location Volume | 编辑器专用的区域标记(见 WP 篇) |
Actor 组织
| 手段 | 用途 |
|---|---|
| Outliner 文件夹 | 编辑器内分组 |
| Actor 标签 / Tag | 运行时查找(见 反射与 UHT) |
| Data Layers | WP 下的运行时开关机制 |
| Level Instance | 把一段关卡内容做成可复用实例 |
| 子关卡 | 旧式组织 |
Level Instance 是复用场景片段的现代做法,比复制粘贴好维护得多。
4. World Settings 里值得注意的
| 设置 | 作用 |
|---|---|
| World Partition Setup | 运行时网格(Cell Size / Loading Range) |
| Enable Streaming | WP 的流式开关(某些模板默认关闭) |
| 光照相关 | 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参考
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/da0ead52.html
更新于:2026年10月10日