World Partition 跨关卡读档:问题索引
December 8, 2025About 1 min
World Partition 跨关卡读档:问题索引
在 World Partition 项目里做存档,最容易踩的不是"存什么",而是"什么时候恢复"。
读档触发一次跨关卡 travel,目标世界从零初始化,存档里保存的 DataLayer 运行时状态、流送
状态、过场时机要在一连串引擎回调里精确对上号——错一拍,玩家就会看到错误的 DataLayer、
一帧裸场景,或者加载页消失后对着卡顿的空镜。
我把在一个 World Partition + 存档项目里趟过的几个问题按类型拆成了下面几篇。存档框架基于
开源的 Save Extension 插件,加载页基于开源的 Asynchronous Loading Screen 插件。
存档恢复
- World Partition 存档恢复时机:DataLayer 状态与 travel 前预恢复
—— DataLayer 状态为什么必须在OnWorldPartitionInitialized应用,以及怎么用 travel 前
预恢复让数据提前就位。
子系统架构
- GameInstance 子系统初始化顺序与「最派生子系统」模式
—— GI 子系统Initialize阶段GetWorld()为 null、两个子系统初始化顺序无保证,用ShouldCreateSubsystem+InitializeDependency<>解决。
加载过渡
- 加载页到入场过场的黑屏桥接
—— 加载页消失太早、过场还没起,用一段可超时兜底的黑屏遮住空窗。
配套通用技巧
- 诊断日志默认静默、运行时开关
—— 诊断日志降到Verbose、随时一键打开。 - 踩坑:改对了源码,但没编进包
—— 包内二进制旧于源文件,误判成代码问题。