31 lines
835 B
C#
31 lines
835 B
C#
using System.Collections;
|
||
using AibisDream.Kit;
|
||
|
||
namespace AibisDream.SaveSystem
|
||
{
|
||
/// <summary>
|
||
/// sections["audio"]:FMOD 音乐/SFX 实例路径与 AMB 状态终态(AudioManager)。
|
||
/// 不记录播放进度,读档后按路径重新 CreateInstance 并 start。
|
||
/// </summary>
|
||
public class AudioSnapshotProvider : ISnapshotProvider
|
||
{
|
||
public string SaveId => SnapshotProviderIds.Audio;
|
||
public int RestoreOrder => 50;
|
||
|
||
public object Capture()
|
||
{
|
||
return AudioManager.Instance.CaptureSnapshot();
|
||
}
|
||
|
||
public IEnumerator Restore(object dto)
|
||
{
|
||
if (dto is not AudioSnapshotDto audio)
|
||
{
|
||
yield break;
|
||
}
|
||
|
||
yield return AudioManager.Instance.RestoreSnapshot(audio);
|
||
}
|
||
}
|
||
}
|