using UnityEngine; using System.Collections.Generic; namespace Stary.Evo.AudioCore { 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 语音 /// /// 播放语音 /// /// {[clip:音频], [volume:音量], /// [onComplete:回调行为], [delayOnCompleteTime:延迟回调执行的时间]} public static void PlayVoice(AudioData audioData) { Voice.Play(audioData); } /// /// 停止当前的语音 /// public static void StopVoice() { AudioData audioData = new AudioData(); Voice.Stop(audioData); } #endregion #region 音效 /// /// 播放音效 /// /// {[clip:音频], [volume:音量], /// [onComplete:回调行为], [delayOnCompleteTime:延迟回调执行的时间]} public static void PlaySFX(AudioData audioData) { SFX.Play(audioData); } /// /// 停止所有音效 /// public static void StopAllSFX() { AudioData audioData = new AudioData(); SFX.Stop(audioData); } #endregion #region 背景音乐 /// /// 播放背景音乐 /// /// {[clip:音频], [volume:音量], [fadeDuration:自然过渡时间]} public static void PlayMusic(AudioData audioData) { Music.Play(audioData); } /// /// 停止播放背景音乐 /// /// 自然过渡时间 public static void StopMusic(float fadeDuration = 1f) { AudioData audioData = new AudioData(); audioData.fadeDuration = fadeDuration; Music.Stop(audioData); } #endregion } }