Files
TaiWan/Assets/Roaming/Extenders/AudioEx/Scripts/AudioManagerX.cs
2025-10-31 15:20:38 +08:00

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;
}
}