using System.Collections.Generic; using UnityEngine; using UnityEngine.Audio; using YooAsset; namespace TEngine { public interface IAudioModule { /// /// 总音量控制。 /// public float Volume { get; set; } /// /// 总开关。 /// public bool Enable { get; set; } /// /// 音乐音量 /// public float MusicVolume { get; set; } /// /// 音效音量。 /// public float SoundVolume { get; set; } /// /// UI音效音量。 /// public float UISoundVolume { get; set; } /// /// 语音音量。 /// public float VoiceVolume { get; set; } /// /// 音乐开关。 /// public bool MusicEnable { get; set; } /// /// 音效开关。 /// public bool SoundEnable { get; set; } /// /// UI音效开关。 /// public bool UISoundEnable { get; set; } /// /// 语音开关。 /// public bool VoiceEnable { get; set; } /// /// 音频混响器。 /// public AudioMixer AudioMixer { get;} /// /// 实例化根节点。 /// public Transform InstanceRoot { get;} public Dictionary AudioClipPool { get; set; } /// /// 初始化音频模块。 /// /// 音频轨道组配置。 /// 实例化根节点。 /// 音频混响器。 /// public void Initialize(AudioGroupConfig[] audioGroupConfigs, Transform instanceRoot = null, AudioMixer audioMixer = null); /// /// 重启音频模块。 /// public void Restart(); /// /// 播放音频接口。 /// /// 如果超过最大发声数采用fadeout的方式复用最久播放的AudioSource。 /// 声音类型。 /// 声音文件路径。 /// 是否循环播放。> /// 音量(0-1.0)。 /// 是否异步加载。 /// 是否支持资源池。 public AudioAgent Play(AudioType type, string path, bool bLoop = false, float volume = 1.0f, bool bAsync = false, bool bInPool = false); /// /// 停止某类声音播放。 /// /// 声音类型。 /// 是否渐消。 public void Stop(AudioType type, bool fadeout); /// /// 停止所有声音。 /// /// 是否渐消。 public void StopAll(bool fadeout); /// /// 预先加载AudioClip,并放入对象池。 /// /// AudioClip的AssetPath集合。 public void PutInAudioPool(List list); /// /// 将部分AudioClip从对象池移出。 /// /// AudioClip的AssetPath集合。 public void RemoveClipFromPool(List list); /// /// 清空AudioClip的对象池。 /// public void CleanSoundPool(); } }