56 lines
1.4 KiB
C#
56 lines
1.4 KiB
C#
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;
|
|
|
|
// 初始化 AudioCoreManager
|
|
static AudioCoreManager()
|
|
{
|
|
audioSourcePool = new AudioSourcePool();
|
|
// 初始化播放器
|
|
Voice = new VoicePlayer(audioSourcePool);
|
|
SFX = new SFXPlayer(audioSourcePool);
|
|
Music = new MusicPlayer(audioSourcePool);
|
|
}
|
|
|
|
// 播放语音
|
|
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();
|
|
}
|
|
|
|
// 播放音效
|
|
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();
|
|
}
|
|
|
|
// 播放背景音乐
|
|
public static void PlayMusic(AudioClip clip, float fadeDuration = 0f)
|
|
{
|
|
Music.Play(clip, fadeDuration);
|
|
}
|
|
|
|
// 停止背景音乐
|
|
public static void StopMusic(float fadeDuration = 1f)
|
|
{
|
|
Music.Stop(fadeDuration);
|
|
}
|
|
} |