Files
aibis-dream/Assets/Scripts/Framework/AudioKit/AudioYarnCommand.cs
T
2025-03-07 22:28:12 +08:00

74 lines
2.2 KiB
C#

using System;
using FMOD.Studio;
using Yarn.Unity;
namespace AibisDream.Kit
{
public static class AudioYarnCommand
{
private static IAudioManager AudioManager => FmodManager.Instance;
[YarnCommand("play_music")]
public static void PlayMusic(string eventName, string audioKey = null)
{
AudioManager.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.StopMusic(eventName, mode);
}
[YarnCommand("set_music_param")]
public static void SetMusicParam(string eventName, string paramName, float paramValue)
{
AudioManager.SetMusicParam(eventName, paramName, paramValue);
}
[YarnCommand("play_sfx")]
public static void PlaySfx(string eventName, string audioKey = null)
{
AudioManager.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.StopSfx(eventName, mode);
}
[YarnCommand("set_sfx_param")]
public static void SetSfxParam(string eventName, string paramName, float paramValue)
{
AudioManager.SetSfxParam(eventName, paramName, paramValue);
}
[YarnCommand("change_amb")]
public static void ChangeAmb(string ambState)
{
var realState = Enum.Parse<AmbState>(ambState);
AudioManager.ChangeAmb(realState);
}
[YarnCommand("set_amb_param")]
public static void SetAmbParam(string paramName, float value)
{
AudioManager.SetAmbParam(paramName, value);
}
}
}