跳转至

快照历史与查看器

需要做“状态快照级别”的撤回、回滚或编辑器预览恢复时,可以注册 GFSnapshotHistoryUtility

它默认使用所属 GFArchitecture.get_global_snapshot() / restore_global_snapshot() 捕获和恢复已注册 Model 及可选命令历史,也可以通过回调接入任意项目自定义状态。

var snapshots := Gf.get_utility(GFSnapshotHistoryUtility) as GFSnapshotHistoryUtility
snapshots.max_history_size = 32
snapshots.capture({ "reason": "before_preview" })

# 修改项目状态后恢复上一份快照
snapshots.step_back()

如果状态不在 GFArchitecture 里,使用 configure(capture_callback, restore_callback, options) 明确传入捕获和恢复逻辑。

push_snapshot(data, metadata) 可把外部已经生成的状态压入历史;restore_index() / restore_snapshot_id() 可按位置或稳定 ID 恢复;get_debug_snapshot() 会报告当前索引、可前进/后退状态和保留的 ID 列表。

该工具只管理快照栈和深拷贝,不替代 GFCommandHistoryUtility 的逐命令 undo/redo,也不替代 GFStorageUtility 的持久化写盘。恢复快照涉及业务对象重建、命令反序列化或远端同步时,仍应由项目层提供对应 builder 或回调。

Storage Viewer

插件启用后也会在独立 GF Workspace 中提供 GF Storage Viewer 页面。它由标准库中的 GFStorageViewerDock 承载,用于按 codec 选项查看本地存档内容、校验状态并复制 JSON,方便调试而不绑定任何项目业务结构。

SaveGraph 入口

如果需要采集和恢复场景树节点状态,使用 GF Save 扩展的 GFSaveGraphUtility / GFSaveScope

标准库文档聚焦本地读写、编码、同步和快照能力;SaveGraph 的节点序列化器、槽位工作流和 pipeline trace 见 Save 场景存档图