using System.Collections; namespace AibisDream.SaveSystem { /// /// sections["scene"]:当前 Addressable 场景。 /// RestoreOrder=10,读档时最先加载场景,供后续 env/actor 等依赖。 /// public class SceneSnapshotProvider : ISnapshotProvider { public string SaveId => SnapshotProviderIds.Scene; public int RestoreOrder => 10; public object Capture() { var sceneLoader = SceneLoader.Instance; return new SceneSnapshotDto { sceneName = sceneLoader != null ? sceneLoader.CurrentSceneName : null }; } public IEnumerator Restore(object dto) { if (dto is not SceneSnapshotDto scene || string.IsNullOrEmpty(scene.sceneName)) { yield break; } yield return SceneLoader.Instance.LoadSceneAsync(scene.sceneName); } } }