using UnityEngine; using System.Collections.Generic; public static class AudioCoreManager { private static AudioSourcePool audioSourcePool; private static VoicePlayer Voice; private static SFXPlayer SFX; private static MusicPlayer Music; static AudioCoreManager() { audioSourcePool = new AudioSourcePool(); // 初始化播放器 Voice = new VoicePlayer(audioSourcePool); SFX = new SFXPlayer(audioSourcePool); Music = new MusicPlayer(audioSourcePool); } #region 语音 /// /// 播放语音 /// /// 音频 /// 结束行为 /// 结束行为延迟执行时间 public static void PlayVoice(AudioClip clip, System.Action onComplete, float delay = 0f) { Voice.Play(clip, 1f, onComplete, delay); } /// /// 播放语音 /// /// 音频 /// 音量 /// 结束行为 /// 结束行为延迟执行时间 public static void PlayVoice(AudioClip clip, float volume = 1f, System.Action onComplete = null, float delay = 0f) { Voice.Play(clip, volume, onComplete, delay); } /// /// 停止当前的语音 /// public static void StopVoice() { Voice.Stop(); } #endregion #region 音效 /// /// 播放音效 /// /// 音频 /// 结束行为 /// 结束行为延迟执行时间 public static void PlaySFX(AudioClip clip, System.Action onComplete, float delay = 0f) { SFX.Play(clip, 1f, onComplete, delay); } /// /// 播放音效 /// /// 音频 /// 音量 /// 结束行为 /// 结束行为延迟执行时间 public static void PlaySFX(AudioClip clip, float volume = 1f, System.Action onComplete = null, float delay = 0f) { SFX.Play(clip, volume, onComplete, delay); } /// /// 停止所有音效 /// public static void StopAllSFX() { SFX.Stop(); } #endregion #region 背景音乐 /// /// 播放背景音乐 /// /// 音频 /// 音量 /// 自然过渡时间 public static void PlayMusic(AudioClip clip, float volume = 1f, float fadeDuration = 1f) { Music.Play(clip, volume, fadeDuration); } /// /// 停止播放背景音乐 /// /// 自然过渡时间 public static void StopMusic(float fadeDuration = 1f) { Music.Stop(fadeDuration); } #endregion }