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