Files
aibis-dream/Assets/Scripts/Framework/AudioKit/AudioYarnCommand.cs
T
2025-03-08 15:43:37 +08:00

72 lines
2.2 KiB
C#

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>(ambState);
AudioManager.Instance.ChangeAmb(realState);
}
[YarnCommand("set_global_param")]
public static void SetGlobalParam(string paramName, float value)
{
AudioManager.Instance.SetGlobalParam(paramName, value);
}
}
}