/// 一个简单的音乐管理类,第一次有很多不足之处,希望大家可以指点出来。
/// 在一些小型项目中一般音乐分为背景音乐,按钮音乐和一些特效音乐,一般
/// 在设置音量和静音的开关时都会分为: 音乐 和 音效 两个选项,这里对音乐
/// 的控制其实就是背景音乐,而音效就是按钮跟一些特效的音乐。
/// 所以这里就需要3个AudioSource组件来分别播放这些音乐,一个只播放背景,
/// 一个只播放按钮音乐,一个只播放特效的音乐,因为都是只有一个组件在播放,
/// 所以这些不同功能的组件在播音乐的时候,同一时间只能播放一个音乐,最后面
/// 有一个可以同时播放多个音乐的方法,原理就是创建多个AudioSource组件来播放。
/// 但是也不能无限制的来创建AudioSource,所以对数量有限制。
///
/// SoundInstance 单例
/// audioSoundVolume 音效音量
/// audioMusicVolume 音乐音量
/// SoundOnOff 音效开关(true:为开(音量为1) false:为关(静音专用)
/// MusicOnOff 音乐开关(true:为开(音量为1) false:为关)(静音专用)
/// SetPlayMusic 设置并播放音乐(背景音乐)
/// SetMusic 设置音乐(背景音乐) 需要配合PlayMusic才能播放
/// PlayMusic 开始播放音乐(背景音乐) 需要配合SetMusic才能播放
/// StopMusic 停止播放音乐(背景音乐)
/// PlayBtnSound 播放按钮音效
/// PlayEffSound 播放音效(只播放一次)(可循环播放)(音乐播放完执行函数)
/// StopEffSound 停止播放音效(当循环播放音效时可用)
/// addMultiAudioEffect 多音效非相同播放
using
System.
Collections;
using
System.
Collections.
Generic;
using
UnityEngine;
using
UnityEngine.
Events;
public
class
FunctionsSound :
MonoBehaviour
{
///
<
summary
>
/// 音乐
///
</
summary
>
string music
{
get {
return
"backvolume"; }
}
///
<
summary
>
/// 音效
///
</
summary
>
string sound
{
get {
return
"gamevolume"; }
}
///
<
summary
>
/// 音乐默认设置
///
</
summary
>
string musicFirstSet
{
get {
return
"1"; }
}
///
<
summary
>
/// 音效默认设置
///
</
summary
>
string soundFirstSet
{
get {
return
"1"; }
}
///
<
summary
>
/// 声音控制类
///
</
summary
>
static
FunctionsSound _soundInstance;
public
static
FunctionsSound SoundInstance
{
get
{
if (
_soundInstance ==
null)
{
GameObject obj =
new
GameObject(
"SoundManager");
_soundInstance =
obj.
AddComponent<
FunctionsSound>();
}
return
_soundInstance;
}
}
///
<
summary
>
/// 音效播放器(用于播放按钮音乐)
///
</
summary
>
AudioSource _audioSound;
AudioSource audioSound
{
get
{
if (
_audioSound ==
null)
{
_audioSound =
SoundInstance.
gameObject.
AddComponent<
AudioSource>();
_audioSound.
loop =
false;
setVolume(
_audioSound,
float.
Parse(
getSoundPrefs()));
}
return
_audioSound;
}
}
///
<
summary
>
/// 音乐播放器(用于播放背景音乐)
///
</
summary
>
AudioSource _audioMusic;
AudioSource audioMusic
{
get