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);
}
}
游戏音效管理
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...
- 4.1管理对象 谈到现在,终于可以谈谈我心目中的“游戏式管理”了。 简单来看,一个员工进企业首先是为了良好的职业发...