using System; using FMOD.Studio; using Yarn.Unity; namespace AibisDream.Kit { public static class AudioYarnCommand { [YarnCommand("play_music")] public static void PlayMusic(string eventName, string audioKey = null) { AudioManager.Instance.PlayMusic(eventName, audioKey); } [YarnCommand("stop_music")] public static void StopMusic(string eventName, string type = null) { // 处理停止类型 var mode = type switch { "fade" => STOP_MODE.ALLOWFADEOUT, _ => STOP_MODE.IMMEDIATE }; AudioManager.Instance.StopMusic(eventName, mode); } [YarnCommand("set_music_param")] public static void SetMusicParam(string eventName, string paramName, float paramValue) { AudioManager.Instance.SetMusicParam(eventName, paramName, paramValue); } [YarnCommand("play_sfx")] public static void PlaySfx(string eventName, string audioKey = null) { AudioManager.Instance.PlaySfx(eventName, audioKey); } [YarnCommand("stop_sfx")] public static void StopSfx(string eventName, string type = null) { // 处理停止类型 var mode = type switch { "fade" => STOP_MODE.ALLOWFADEOUT, _ => STOP_MODE.IMMEDIATE }; AudioManager.Instance.StopSfx(eventName, mode); } [YarnCommand("set_sfx_param")] public static void SetSfxParam(string eventName, string paramName, float paramValue) { AudioManager.Instance.SetSfxParam(eventName, paramName, paramValue); } [YarnCommand("change_amb")] public static void ChangeAmb(string ambState) { var realState = Enum.Parse(ambState); AudioManager.Instance.ChangeAmb(realState); } [YarnCommand("set_global_param")] public static void SetGlobalParam(string paramName, float value) { AudioManager.Instance.SetYarnGlobalParam(paramName, value); } } }