第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 【Unity】 HTFramework框架(十四)Audio音频管理器

【Unity】 HTFramework框架(十四)Audio音频管理器

时间:2022-06-08 16:21:43

相关推荐

【Unity】 HTFramework框架(十四)Audio音频管理器

更新日期:9月27日。

Github源码:[点我获取源码]

Gitee源码:[点我获取源码]

索引

Audio音频管理器简介使用Audio音频管理器播放背景音乐播放单通道音效播放多通道音效播放世界音效默认音量设置事件运行时检视面板

Audio音频管理器简介

Audio音频管理器负责全局音频的管理,在Audio中,音频被划分为四种类型:

1.背景音乐(特点:2D,长,重复,音量低,单一的)

背景音乐为单一的音乐,全局只能播放一个,当播放新的背景音乐时会覆盖旧的,且为2D模式,默认情况下,他的音量低于其他任何音频。

(多用于音量较低、重复的用来烘托场景气氛的背景音乐)

2.单通道音效(特点:2D,短,不重复,音量高,单一的)

单通道音效为单一的音效,全局只能播放一个,当播放新的单通道音效时会覆盖旧的,且为2D模式。

(多用于单一的不重复的音效,比如NPC说话,当同时只允许一个NPC说话时,新的NPC说话会覆盖旧的)

3.多通道音效(特点:2D,短,不重复,音量高,多元的)

多通道音效为多元的音效,全局能播放无限个,当播放新的多通道音效时不影响其他音效的播放,且为2D模式。

(多用于技能音效,UI音效等)

4.世界音效(特点:3D,长/短,可/不重复,音量高,多元的)

世界音效为多元的音效,全局能播放无限个,当播放新的世界音效时不影响其他音效的播放,且为3D模式。

(多用于3D背景音乐、3D技能音效、3D情景对白等)

使用Audio音频管理器

播放背景音乐

播放一段背景音乐将变得极其简单:

//播放背景音乐 _bgMusicMain.m_Audio.PlayBackgroundMusic(_bgMusic);//暂停播放背景音乐,【true】以渐变方式停止音乐Main.m_Audio.PauseBackgroundMusic(true);//恢复播放背景音乐Main.m_Audio.UnPauseBackgroundMusic();//停止播放背景音乐Main.m_Audio.StopBackgroundMusic();

播放单通道音效

单通道音效类似于背景音乐,只不过他默认情况下是简短的不重复的,一闪即逝的音效:

//播放单通道音效 _soundMain.m_Audio.PlaySingleSound(_sound);//暂停播放单通道音效,【true】以渐变方式停止音乐Main.m_Audio.PauseSingleSound();//恢复播放单通道音效Main.m_Audio.UnPauseSingleSound();//停止播放单通道音效Main.m_Audio.StopSingleSound();

播放多通道音效

多通道音效会循环利用AudioSource音源,所以不用担心会有多余的开销:

//播放多通道音效Main.m_Audio.PlayMultipleSound(_attackSound);Main.m_Audio.PlayMultipleSound(_hitSound);Main.m_Audio.PlayMultipleSound(_screamSound);Main.m_Audio.PlayMultipleSound(_goldSound);Main.m_Audio.PlayMultipleSound(_goldSound);//停止播放指定的多通道音效,_goldSoundMain.m_Audio.StopMultipleSound(_goldSound);//停止播放所有的多通道音效Main.m_Audio.StopAllMultipleSound();

播放世界音效

严格来说,世界音效是补充的3D多通道音效,其只支持3D模式播放音频,如果想要做3D的背景音乐,3D的技能音效等,都可以用世界音效,缺点是世界音效必须要依附到一个GameObject上,因为作为3D音效他必须要在3D世界中确定一个位置:

//在 gameObject 上播放世界音效 _soundMain.m_Audio.PlayWorldSound(gameObject, _sound);//停止播放指定的世界音效Main.m_Audio.PauseWorldSound(gameObject);//停止播放所有的世界音效Main.m_Audio.StopAllWorldSound();

默认音量设置

可以在属性面板设置四种类型音频的音量及优先级:

想要关闭全部音频,除了依次停止四种类型的音频外,还可以调用全局静音的接口:

//静音Main.m_Audio.Mute = true;

事件

目前只针对单通道音效有一个【播放结束】的事件,后续会根据情况添加更多的事件:

private void Start(){//单通道音效播放结束Main.m_Audio.SingleSoundEndOfPlayEvent += OnSinglePlayEnd;Main.m_Audio.PlaySingleSound(_sound);}private void OnSinglePlayEnd(){GlobalTools.LogInfo(_sound.name + "Play End!");}

运行时检视面板

在编辑器中运行时将会出现运行时检视面板(Runtime Data),主要用以调试或数据监测,目前面板如下:

1.Mute:是否全局静音。

2.Background Audio:当前背景音乐属性。

3.Single Audio:当前单通道音效属性。

4.Multiple Audio:当前多通道音效属性。

5.World Audio:当前世界音效属性。

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