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