工作时写的一个简单的音频管理器,包含播放、暂停等功能
using System.Collections.Generic;
using UnityEngine;
public class AudioManager : Singleton<AudioManager>
{
protected AudioSource _audio;
protected Dictionary<string, AudioClip> _audioClips = new Dictionary<string, AudioClip>();
//public static MonoBehaviour mono;
public bool isplay = false;
/// <summary>
/// 初始化
/// </summary>
protected override void _OnInit()
{
//mono = new MonoBehaviour();
LoadSounds("AllSounds");
_audio = GameObject.Find("GameManager").GetComponent<AudioSource>();
isplay = false;
}
/// <summary>
/// 加载所有音频文件并添加到字典中
/// </summary>
/// <param name="path">音频路径</param>
public void LoadSounds(string path)
{
var clips = Resources.LoadAll<AudioClip>(path);
for (int i = 0; i < clips.Length; i++)
{
_audioClips.Add(clips[i].name, clips[i]);
}
}
/// <summary>
/// 播放声音
/// </summary>
/// <param name="soundName">声音名字</param>
/// <returns></returns>
public void PlayClip(string soundName, bool loop = false)
{
if (_audioClips.ContainsKey(soundName))
{
AudioClip clip = _audioClips[soundName];
_audio.clip = clip;
if (_audio.clip != null )
{
isplay = true;
_audio.Play();
_audio.loop = loop;
}
}
}
/// <summary>
/// 停止播放声音
/// </summary>
/// <param name="clip"></param>
public void StopClip(AudioClip clip)
{
if (_audio.clip == clip && _audio.isPlaying)
{
_audio.Stop();
_audio.clip = null;
}
}
/// <summary>
///停止播放某个音频
/// </summary>
/// <param name="soundName"></param>
public void StopClip( string soundName)
{
if (_audioClips.ContainsKey(soundName))
{
AudioClip clip = _audioClips[soundName];
if (_audio.clip == clip && _audio.isPlaying)
{
_audio.Play();
_audio.clip = null;
}
}
}
}
using System.Collections.Generic;
using UnityEngine;
public class AudioManager : Singleton<AudioManager>
{
protected AudioSource _audio;
protected Dictionary<string, AudioClip> _audioClips = new Dictionary<string, AudioClip>();
//public static MonoBehaviour mono;
public bool isplay = false;
/// <summary>
/// 初始化
/// </summary>
protected override void _OnInit()
{
//mono = new MonoBehaviour();
LoadSounds("AllSounds");
_audio = GameObject.Find("GameManager").GetComponent<AudioSource>();
isplay = false;
}
/// <summary>
/// 加载所有音频文件并添加到字典中
/// </summary>
/// <param name="path">音频路径</param>
public void LoadSounds(string path)
{
var clips = Resources.LoadAll<AudioClip>(path);
for (int i = 0; i < clips.Length; i++)
{
_audioClips.Add(clips[i].name, clips[i]);
}
}
/// <summary>
/// 播放声音
/// </summary>
/// <param name="soundName">声音名字</param>
/// <returns></returns>
public void PlayClip(string soundName, bool loop = false)
{
if (_audioClips.ContainsKey(soundName))
{
AudioClip clip = _audioClips[soundName];
_audio.clip = clip;
if (_audio.clip != null )
{
isplay = true;
_audio.Play();
_audio.loop = loop;
}
}
}
/// <summary>
/// 停止播放声音
/// </summary>
/// <param name="clip"></param>
public void StopClip(AudioClip clip)
{
if (_audio.clip == clip && _audio.isPlaying)
{
_audio.Stop();
_audio.clip = null;
}
}
/// <summary>
///停止播放某个音频
/// </summary>
/// <param name="soundName"></param>
public void StopClip( string soundName)
{
if (_audioClips.ContainsKey(soundName))
{
AudioClip clip = _audioClips[soundName];
if (_audio.clip == clip && _audio.isPlaying)
{
_audio.Play();
_audio.clip = null;
}
}
}
}