using System.Collections; namespace AibisDream.SaveSystem { /// /// 快照层对外 API:Capture / Restore,不涉及文件与 UI。 /// 游戏逻辑应优先使用 完成存读档流程。 /// public static class SnapshotService { /// 捕获当前运行时快照。 /// 。 public static SaveSnapshot Capture(string triggerNodeName = null) { SnapshotRegistry.EnsureInitialized(); return SnapshotCapture.Capture(YarnVariableStorage.Instance, triggerNodeName); } /// /// 还原快照状态;默认继续执行 。 /// 业务读档流程应优先使用 ,以获得黑屏与自动存档抑制。 /// public static IEnumerator Restore(SaveSnapshot snapshot, bool restoreAnchor = true) { if (snapshot == null) { yield break; } SnapshotRegistry.EnsureInitialized(); var context = new SnapshotRestoreContext(snapshot); yield return SnapshotRestore.RestoreState(YarnVariableStorage.Instance, snapshot, context); if (restoreAnchor) { yield return SnapshotRestore.RestoreAnchor(snapshot, context); } } } }