namespace AibisDream.SaveSystem
{
///
/// 从 根对象直接读取的宏观摘要(场景 / 章节 SO / YarnProject)。
///
/// scene 与 anchor 已提升到根对象,无需再从 sections 字典派生。
/// 槽位 / 「继续游戏」等 UI 在需要展示时调用 即可。
///
///
public readonly struct SaveSnapshotSummary
{
/// Addressable 场景 key(来自 )。
public readonly string SceneName;
/// 当前 TalkSceneSO 的 asset 名称(来自 )。
public readonly string SceneSoName;
/// 当前 YarnProject 的 name(来自 )。
public readonly string YarnProjectId;
public SaveSnapshotSummary(string sceneName, string sceneSoName, string yarnProjectId)
{
SceneName = sceneName;
SceneSoName = sceneSoName;
YarnProjectId = yarnProjectId;
}
/// 从快照根对象直接读取宏观摘要。
public static SaveSnapshotSummary From(SaveSnapshot snapshot)
{
if (snapshot == null)
{
return new SaveSnapshotSummary(null, null, null);
}
var sceneName = snapshot.scene?.sceneName;
var sceneSoName = snapshot.anchor?.sceneSoName;
var yarnProjectId = snapshot.anchor?.yarnProjectId;
return new SaveSnapshotSummary(sceneName, sceneSoName, yarnProjectId);
}
}
}