Files
TaiWan/Assets/Roaming/Extenders/AudioEx/Scripts/AudioManagerX.cs

122 lines
2.7 KiB
C#
Raw Normal View History

2025-10-31 15:20:38 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
using UnityEngine.UI;
/// <summary>
/// <20><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public class AudioManagerX : MonoBehaviour
{
/// <summary>
/// <20><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public static AudioManagerX Instance;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵԴ
/// </summary>
public AudioSource audioSourceBg;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƵԴ
/// </summary>
public AudioSource audioSourceSound;
void Awake()
{
Instance = this;
if (audioSourceBg != null)
{
IsBgMute = audioSourceBg.mute;
}
}
/// <summary>
/// <20><><EFBFBD>ŵ<EFBFBD>indexչ<78><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="index">չ<><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD></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>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч(Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD>)
/// </summary>
/// <param name="audioName"><3E><>Ч<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD></param>
public void PlayAudio(string audioName, float volumn = 1f)
{
PlayAudio(audioName, CommonData.MainCamera.transform.position, volumn);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
/// </summary>
/// <param name="audioName"><3E><>Ч<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD></param>
/// <param name="pos"><3E><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB></param>
public void PlayAudio(string audioName, Vector3 pos, float volumn = 1f)
{
StartCoroutine(AudioLoader.LoadAudio(CommonData.DataServer + "/Audios/" + audioName + ".mp3", AudioLoaderHandler, audioSourceSound));
}
/// <summary>
/// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ
/// </summary>
public void StopAudio()
{
if (audioSourceSound.isPlaying)
{
audioSourceSound.Stop();
}
}
/// <summary>
/// <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public void PauseBackgroundMusic()
{
if (IsBgMute == false)
{
// audioSourceBg.Pause();
audioSourceBg.volume = 0;
}
}
/// <summary>
/// <20>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public void ResumeBackgroundMusic()
{
if (IsBgMute == false)
{
// audioSourceBg.Play();
audioSourceBg.volume = 0.1f;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public bool IsBgMute;
/// <summary>
/// <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD>
/// </summary>
public void SetBackgroundMute()
{
audioSourceBg.mute = !audioSourceBg.mute;
IsBgMute = audioSourceBg.mute;
}
}