Unity开启篇(九) —— Unity声音简介(二)

版本记录

版本号 时间
V1.0 2019.01.13 星期日

前言

Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至WindowsMacWiiiPhoneWebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。网页游戏 坦克英雄和手机游戏王者荣耀都是基于它的开发。
下面我们就一起开启Unity之旅。感兴趣的看下面几篇文章。
1. Unity开启篇(一) —— Unity界面及创建第一个简单的游戏 (一)
2. Unity开启篇(二) —— Unity界面及创建第一个简单的游戏 (二)
3. Unity开启篇(三) —— 一款简单射击游戏示例 (一)
4. Unity开启篇(四) —— 一款简单射击游戏示例 (二)
5. Unity开启篇(五) —— 一款简单射击游戏示例 (三)
6. Unity开启篇(六) —— Unity动画简介 (一)
7. Unity开启篇(七) —— Unity动画简介 (二)
8. Unity开启篇(八) —— Unity声音简介(一)

Polishing Sound

到目前为止,这游戏一直很顺利 - 所有的动物都在飞向谷仓时发出声音。 但仍有一些事情没有做:

  • 拖拉机没有任何声音。
  • 当一只动物进入谷仓时没有成功的声音。
  • 如果动物撞到拖拉机,就没有死亡声音。

添加这些声音将给这个游戏这个游戏一些真正的润色。

1. Adding Tractor Sounds

要在拖拉机前后移动时向拖拉机添加嗡嗡声,首先按住Control(在PC上)或Command(在Mac上),然后单击层次结构中的所有三个拖拉机。 批量添加AudioSource,然后添加拖拉机声音剪辑,就像动物声音一样。 确保选中Play On Awake

所有拖拉机都附有声音,请单击Play按钮。

拖拉机有声音很棒,但是在所有三个同时播放时很难区分它们。而且,它真的很响亮。

如前所述,3D sounds可以随着音量的减小而播放,AudioListener(在这个游戏中,它在相机上)离AudioSource越远。添加衰减效果(使拖拉机距离摄像机越远,它们越安静)将使声音听起来更好。

单击层次结构中的拖拉机tractor;在Inspector中,查看AudioSource组件。将有一个名为3D Sound Settings的下拉区域。在这里,您可以设置Doppler LevelRolloffDistance变量。

Doppler Level正是它的声音:声音强度变化以模仿Doppler effectRolloff Level是音量从AudioListener进一步平息到它的源的距离。

这是最接近玩家的拖拉机,因此其声音衰减应该比后两者更具戏剧性。将Volume Rolloff设置为Linear Rolloff,这将使效果更加明显。接下来,将Min Distance设置为1,将Max Distance设置为9。将Doppler Level设置为0.68。

这将使前拖拉机在接近屏幕中间时(当它靠近摄像机上的听众时)听起来很响,并且当它离开屏幕时更安静。 单击Play以查看此内容。

对于后两个拖拉机,它们的声音应该更像背景噪音;只有前拖拉机应该有夸张的声音。

要调低后拖拉机的强度:

  • 1) 首先在层次结构中选择tractor2
  • 2) 将Volume Rolloff设置为Linear Rolloff
  • 3) 然后,将Min Distance设置为1,将Max Distance设置为30。
  • 4) 将Doppler Level设置为0.68。
  • 5) 接下来,在Hierarchy中选择tractor3并将Volume Rolloff设置为Linear Rolloff
  • 6) 将Min Distance设置为1,将Max Distance设置为50。将Doppler Level设置为0.68。

单击Play并在拖拉机来回移动时聆听不同的声级。

拖拉机声音太大,特别是其中三个一起播放。 将AudioSource上的音量滑块设置为0.4。

如果您玩游戏的时间超过40秒,您会发现拖拉机的声音已被切断。 那是因为他们的AudioSource还没有设置为循环。 要更改此设置,请单击每个拖拉机的AudioComponentLoop框。

2. Adding Hit Sounds

不幸的是,当动物撞到拖拉机时,它们会受到撞击。 更不幸的是,当发生这种情况时,目前还没有声音! 如前所述,拖拉机正在使用Unity物理引擎并监听与动物的碰撞。 当动物与拖拉机碰撞时,它会告诉动物死亡 - 那就是声音需要播放的时候。

首先,您需要将死亡声音的AudioClip附加到Tractor组件。 去做这个:

  • 1) 按住Control(在PC上)或Command(在Mac上)。 然后单击Hierarchy中的三个拖拉机。
  • 2) 选择三个拖拉机GameObjects,然后单击InspectorTractor组件的Death Sound字段旁边的dot
  • 3) 接下来,从下面显示的Select Audio Clip弹出窗口中选择death声音文件。

要编写动物死亡声音,首先双击Tractor C#脚本,在编辑器中打开它(在Assets \ RW \ Scripts文件夹中找到)。 在if语句的右括号之前,添加以下代码:

audioSource.PlayOneShot(deathSound);

最后结果如下所示:

void OnCollisionEnter(Collision col) 
{
    if (col.gameObject.GetComponent<Animal>() && !col.gameObject.GetComponent<Animal>().isDead) 
    {
        Destroy(col.gameObject);
        audioSource.PlayOneShot(deathSound);
    }
}

Control-S(在PC上)或Command-S(在Mac上)以保存脚本。

PlayOneShot()播放一次声音。 您正在传递您添加到拖拉机的声音,然后从拖拉机上播放一次。 拖拉机(而不是动物)应该播放声音的原因是,当动物被拖拉机击中时,作为动物的文字GameObject被删除。 由于它不再存在,动物无法发出声音。 您可以关闭网格并以这种方式播放动物的声音,但这更复杂。

使用PlayOneShot()的好处是,即使再次调用PlayOneShot(),声音也会完成。 如果不是这种情况,动物的声音会相互切断,听起来不稳定。

点击播放并通过有意将动物放入拖拉机而不是为了谷仓的安全而测试。 当它们与拖拉机碰撞时,您应该听到“挤压”的声音。

3. Adding Celebration Sounds

此时唯一缺失的声音是动物进入谷仓时的成功声音。

添加这些:

  • 1) 首先单击层次结构中的barn对象。
  • 2) 在Inspector中,向其中添加AudioSource组件。
  • 3) 然后,将win声音从Assets ▸ RW ▸ Sounds拖动到AudioClip字段。
  • 4) 这一次,请确保关闭Play On Awake。 只有当动物进入谷仓时才会播放此声音。
  • 5) 双击Assets ▸ RW ▸ Scripts中的Barn脚本。
  • 6) 在if语句的左大括号下面添加以下内容:
if(col.gameObject.GetComponent<Animal>())

如下所示:

    
void OnCollisionEnter(Collision col)
{
    if(col.gameObject.GetComponent<Animal>())
    {
        GetComponent<AudioSource>().Play();
        Destroy(col.gameObject);
    }
}

这告诉谷仓,当动物与它碰撞时,它应该获得AudioSource组件并播放它。 保存更改,然后单击播放并将动物放入谷仓。 现在,当动物进入谷仓时,会发出成功的声音。


Finishing Touches: Varying Sound Effects

最后一点点润色可以添加,只需很少的努力。 一遍又一遍地听到完全相同的声音很烦人。 为了保持声音更清新,更少刺激,对一些变量进行编码。

Scripts文件夹中打开Animal C#脚本。 在public bool isDead = false下添加以下内容。

void Start()
{
    AudioSource audioSource = GetComponent<AudioSource>();
    audioSource.pitch = Random.Range(0.8f, 1.5f);
    audioSource.Play();
}

此代码获取AudioSource组件并将音高变量设置为0.8到1.5之间的随机值。 现在,单击Play并启动动物。 他们的动物声音每次都会变化。 很酷,对吗?

很棒的工作将你的第一个音效添加到Unity游戏! 现在,你的动物可以愉快地moooinkbaa进入谷仓 - 当然,除非他们被拖拉机击中。

为了更有趣,尝试为每个拖拉机添加不同的音高,向动物进入谷仓时播放的成功声音以及死亡声音。 您还可以尝试为每只动物添加不同的动物声音和独特的死亡声音(虽然这需要更多的编码,以及查找更多的音频文件)。

要了解有关Unity声音引擎的更多信息,请查看Unity的Adding Sounds Effects to Your Game的实时培训。 另外,请查看 AudioSourceAudioClip Unity文档。

后记

本篇主要讲述了Unity声音简介,感兴趣的给个赞或者关注~~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容