using System.Collections; using AibisDream.Kit; using UnityEngine; namespace AibisDream.SaveSystem { /// /// sections["audio"]:FMOD 音乐/SFX 实例路径与 AMB 状态终态(AudioManager)。 /// 不记录播放进度,读档后按路径重新 CreateInstance 并 start。 /// public class AudioSnapshotProvider : ISnapshotProvider { public string SaveId => SnapshotProviderIds.Audio; public int RestoreOrder => 50; public object Capture() { if (AudioManager.Instance == null) { Debug.LogWarning("[AudioSnapshotProvider] AudioManager 未初始化,跳过捕获。"); return null; } return AudioManager.Instance.CaptureSnapshot(); } public IEnumerator Restore(object dto) { if (dto is not AudioSnapshotDto audio) { yield break; } yield return AudioManager.Instance.RestoreSnapshot(audio); } } }