// Assets/Scripts/Audio/UnderwaterAudioController.cs
// 进入 LiquidZone 时切换水下 DSP 处理(Architecture 21_LiquidPuzzleModule §3.4)
using UnityEngine;
using UnityEngine.Audio;
namespace BaseGames.Audio
{
///
/// 挂载于 PlayerController 所在 GameObject。
/// 由 LiquidZone.OnTriggerEnter2D / OnTriggerExit2D 直接调用。
/// 切换 AudioMixer Snapshot 以应用/解除水下 DSP 处理。
///
public class UnderwaterAudioController : MonoBehaviour
{
[SerializeField] private AudioMixer _mixer;
[SerializeField] private float _transitionDuration = 0.3f;
/// 玩家进入 Water 类型液体时调用。
public void EnterWater()
{
_mixer?.FindSnapshot("Underwater")?.TransitionTo(_transitionDuration);
}
/// 玩家离开液体时调用。
public void ExitWater()
{
_mixer?.FindSnapshot("Default")?.TransitionTo(_transitionDuration);
}
}
}