74 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
} |