using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AudioCtroller : SingletonMono<AudioCtroller> {
/// <summary>
/// 播放背景音乐
/// </summary>
private AudioSource aud_BGMusic;
/// <summary>
/// 播放特效
/// </summary>
private AudioSource aud_Effect;
/// <summary>
/// 播放器音量设置
/// </summary>
public float aud_BGvolume
{
set
{
aud_BGMusic.volume = value;
}
get
{
return aud_BGMusic.volume;
}
}
public float aud_Efvolume
{
set
{
aud_Effect.volume = value;
}
get
{
return aud_Effect.volume;
}
}
void Start () {
}
/// <summary>
/// 重写父类Awake,初始化播放组件
/// </summary>
protected override void Awake()
{
base.Awake();
//播放组件初始化设置
aud_BGMusic = gameObject.AddComponent<AudioSource>();
aud_BGMusic.loop = true;
aud_BGMusic.playOnAwake = true;
aud_Effect = gameObject.AddComponent<AudioSource>();
aud_Effect.loop = false;
aud_Effect.playOnAwake = true;
}
//播放
public void PlayMusicByName(object name,bool isRestart = false)
{
string currentName = string.Empty;
if (aud_BGMusic.clip != null)
{
currentName = aud_BGMusic.clip.name;
}
//1.根据名字加载资源
AudioClip clip = ResourseLoad.Instance.ResourceLoadObj<AudioClip>(name);
//AudioClip clip = Resources.Load<AudioClip>(name);
if (clip != null)
{
if (currentName == clip.name && !isRestart)
{
return;
}
}
aud_BGMusic.clip = clip;
aud_BGMusic.Play();
}
public void PlayBgMusic(Music.Music_Main BGName, bool isRestart = false)
{
PlayMusicByName(BGName, isRestart);
}
//public void PlayBgMusic(Music.Music_Item BGName, bool isRestart = false)
//{
// PlayMusicByName(BGName, isRestart);
//}
private void PlayEffectByName(object name, bool isEffect = true, float volume = 1f)
{
AudioClip clip = ResourseLoad.Instance.ResourceLoadObj<AudioClip>(name);
if (clip == null)
{
return;
}
if (isEffect)
{
aud_Effect.PlayOneShot(clip, volume);
}
else
{
AudioSource.PlayClipAtPoint(clip, Camera.main.transform.position, volume);
}
}
public void PlayEffect(Music.Music_Main effect, bool isEffect = true, float volume = 1f)
{
PlayEffectByName(effect, isEffect, volume);
}
public void PlayEffect(Music.Music_Item effect, bool isEffect = true, float volume = 1f)
{
PlayEffectByName(effect, isEffect, volume);
}
public void PlayEffect(Music.Music_Feeds effect, bool isEffect = true, float volume = 1f)
{
PlayEffectByName(effect, isEffect, volume);
}
public void PlayEffect(Music.Monsters effect, bool isEffect = true, float volume = 1f)
{
PlayEffectByName(effect, isEffect, volume);
}
public void PlayEffect(Music.Towers effect, bool isEffect = true, float volume = 1f)
{
PlayEffectByName(effect, isEffect, volume);
}
}
网友评论