using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Linq; using UnityEngine.UI; /// /// 音频管理类 /// public class AudioManagerX : MonoBehaviour { /// /// 音效管理器实例对象 /// public static AudioManagerX Instance; /// /// 背景音频源 /// public AudioSource audioSourceBg; /// /// 讲解音频源 /// public AudioSource audioSourceSound; void Awake() { Instance = this; if (audioSourceBg != null) { IsBgMute = audioSourceBg.mute; } } /// /// 播放第index展厅背景音乐 /// /// 展厅索引 public void PlayBg(int index) { StartCoroutine(AudioLoader.LoadAudio(CommonData.DataServer + "/Audios/ZT" + index + ".mp3", AudioLoaderHandler, audioSourceBg)); } void AudioLoaderHandler(AudioClip auClip, AudioSource asHandler) { if (auClip != null) { asHandler.Stop(); asHandler.clip = auClip; asHandler.Play(); } } /// /// 播放音效(默认在摄像机位置播放) /// /// 音效文件名 public void PlayAudio(string audioName, float volumn = 1f) { PlayAudio(audioName, CommonData.MainCamera.transform.position, volumn); } /// /// 播放音效 /// /// 音效文件名 /// 播放位置 public void PlayAudio(string audioName, Vector3 pos, float volumn = 1f) { StartCoroutine(AudioLoader.LoadAudio(CommonData.DataServer + "/Audios/" + audioName + ".mp3", AudioLoaderHandler, audioSourceSound)); } /// /// 停止播放音频 /// public void StopAudio() { if (audioSourceSound.isPlaying) { audioSourceSound.Stop(); } } /// /// 暂停背景音乐 /// public void PauseBackgroundMusic() { if (IsBgMute == false) { // audioSourceBg.Pause(); audioSourceBg.volume = 0; } } /// /// 恢复背景音乐 /// public void ResumeBackgroundMusic() { if (IsBgMute == false) { // audioSourceBg.Play(); audioSourceBg.volume = 0.1f; } } /// /// 背景音乐是否静音 /// public bool IsBgMute; /// /// 设置背景音乐静音 /// public void SetBackgroundMute() { audioSourceBg.mute = !audioSourceBg.mute; IsBgMute = audioSourceBg.mute; } }