v2.0.0 新增
两种保留范围
| 范围 | 写入与读取 | 示例 |
|---|---|---|
| 当前存档 | 随当前存档保存,读档恢复当时值 | 好感度、金币、当前任务进度 |
| 跨存档 | 多个存档共享,不随旧存档回退 | 已通关路线、永久解锁记录 |
每次启动重置为默认值
2.0.0 将它作为独立开关,不是第三种保留范围。仍然先选择当前存档或跨存档,再决定是否打开「每次启动重置为默认值」。 开启后,变量在全新启动游戏时回到声明的默认值;同一次启动中的返回标题、返回入口、页面重载、引擎重建和读档继续保留当前启动值。变量仍按所选范围正常参与保存,但读档不会用旧存档中的值覆盖当前启动值。 例如,布尔变量intro_seen 默认值为 false,开启启动重置。首次进入开场时播放提示并置为 true,同次启动回到标题不会重复播放;关闭游戏后重新启动才再次从 false 开始。
| 操作 | 普通当前存档变量 | 普通跨存档变量 | 开启启动重置的变量 |
|---|---|---|---|
| 读取旧存档 | 恢复存档值 | 保留共享值 | 保留当前启动值 |
| 返回入口开始新流程 | 恢复默认值 | 保留共享值 | 保留当前启动值 |
| 全新启动游戏 | 先初始化,读档后恢复 | 恢复共享值 | 恢复默认值 |
与扩展 session 的区别
旧项目曾使用session 表示启动期项目变量,读取时会兼容为“当前存档 + 启动重置”。扩展的存档 Schema里真正的 session 字段仍是不写入存档、仅当前 App 启动有效的运行数据。不要把两者混为同一种存档策略。
调试与常见错误
在运行存档数据查看器中观察数值,必要时只恢复启动重置项的默认值。清除跨存档数据前先确认影响范围。- 读档后好感度不恢复:检查是否误开启动重置或选成跨存档。
- 回标题后开场提示重播:检查是否在入口脚本中无条件把变量再次设为默认值。
- 永久解锁每次打开消失:跨存档解锁通常不应开启启动重置。
- 变量重命名后扩展读不到:Studio 会迁移已知引用,但扩展自行拼接的字符串仍需人工检查。