// 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); } } }