300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 关于 Unity 音乐音效管理

关于 Unity 音乐音效管理

时间:2024-06-08 12:12:59

相关推荐

关于 Unity 音乐音效管理

本文转载自:/microsoftMSDNNET/article/details/47273239

在实战项目中,音乐音效的好坏肯定是一个玩家对此项目评定的一个因素之一。所以,有必要对音乐音效做出一个统一的管理。

首先,我把几个音效放到了Resouces的Audios文件夹下,方便动态加载。

之后,利用一个非常简单的单例,建了一个空物体当做管理音乐的gameObject,将音乐音效统一管理起来,代码如下:

public class SoundManager:MonoBehaviour {//------------------------------///// <summary>/// 单例模式/// </summary>public static readonly SoundManager instance=new SoundManager ();private SoundManager (){}//------------------------------///// <summary>/// 将声音放入字典中,方便管理/// </summary>private Dictionary<string, AudioClip> _soundDictionary;private AudioSource [] audioSources;private AudioSource bgAudioSource;private AudioSource audioSourceEffect;void Awake(){instance = this;_soundDictionary = new Dictionary<string, AudioClip> ();//本地加载 AudioClip [] audioArray = Resources.LoadAll<AudioClip> ("AudioCilp");audioSources = GetComponents<AudioSource> ();bgAudioSource = audioSources [0];audioSourceEffect = audioSources [1];//存放到字典foreach (AudioClip item in audioArray) {_soundDictionary.Add(item.name,item);}}//播放背景音乐public void PlayBGaudio(string audioName){if (_soundDictionary.ContainsKey(audioName)) {bgAudioSource.clip=_soundDictionary[audioName];bgAudioSource.Play();}}//播放音效public void PlayAudioEffect(string audioEffectName){if (_soundDictionary.ContainsKey(audioEffectName)) {audioSourceEffect.clip=_soundDictionary[audioEffectName];audioSourceEffect.Play(); }}}12345678910111213141516171819222324252627282930313233343536373839404142434445464748495051525354555657585960616263

音效是一直在场景中不消失的,所以要保证切换场景的时候资源不会删除。

//=============================================//static bool isHaveAudio=false ;public GameObject tempGameObject;//=============================================////不销毁音效void Start(){if (!isHaveAudio) {tempGameObject=Instantiate(Resources.Load("SoundManage"))as GameObject;isHaveAudio=true ;}DontDestroyOnLoad (tempGameObject);}1234567891011121314

使用:先执行加载预设(Start())脚本。

SoundManage是个预设,预设绑定SoundManager.cs脚本。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。