目录
在 Village(村庄)的小山丘上,你会看到有个风车在慢慢转动。这个风车看起来好像跟 Allegro 王国中的各种其他素材没什么两样,但其实它还有一个另外的作用:以其特有的机械声音预示人类文明所在,从而引导玩家顺利找到 Village。接下来,我们要通过 AkAmbient 脚本来针对 Windmill(风车)游戏对象发送 Windmill Event(事件)。
-
在 Unity 菜单栏中,依次选择 Audiokinetic > Certification > 301 > Lesson 2 > Posting an Ambience。
我们注意到,Hierarchy 中将会显示两个场景:Village Environment Scene 和 L2_1 - Posting an Ambience。L2_1 - Posting an Ambience 是 Main 场景的副本,用作《Wwise Adventure Game》中的基本场景,便于加载所有其他区域场景。Village Environment Scene 是一个包含所有只存在于 Village 的游戏对象的区域场景。该场景一般会由系统自动加载和卸载,通常只有在进入 Play 模式时才会显示在 Hierarchy 中。不过,因为要对此场景内的 Windmill 游戏对象进行修改,所以我们将其与 L2_1 - Posting an Ambience Scene 一并加载到了 Unity 中。
如需进一步了解如何在 Unity 中管理多个场景,请访问 https://docs.unity3d.com/Manual/MultiSceneEditing.html 页面。
首先,我们要找到 Windmill 游戏对象,并向其添加 AkAmbient 脚本。
-
在 Hierarchy 中,选中 L2_1B - Village Environment Scene,然后展开 Wwise 并选中 Windmill 游戏对象。
接下来,我们还要调节 Scene 视图以便仔细查看 Windmill 游戏对象。
-
在 Hierarchy 中选中 Windmill 游戏对象的情况下,将鼠标移到 Scene 视图中,然后单击 F。
接下来,我们需要添加 AkAmbient 脚本。
-
在 Inspector 中,添加 AkAmbient 脚本。
若不知如何添加脚本,请参阅“第 1 课”。
我们来看下 AkAmbient 组件,察看都包含哪些属性。
在添加的 AkAmbient 组件中,我们会看到 Trigger On、Action on Event、Use Callback 和 Event Name 属性。这些跟 AkEvent 组件完全相同。除此之外,AkAmbient 还增添了 Position Type 和 Show Attenuation Sphere 属性字段。Event Name 中目前还没有选择任何 Event。接下来,我们添加 Ambient_Windmill Event。
-
在 Event Name: 中,依次展开 Events > Ambient > SoundBankSpecific,然后双击 Ambient_Windmill Event。
我们注意到,Trigger On 选项设成了 Start。因为游戏一加载就会启动 Windmill,所以我们选择保留此选项。接下来,我们在 Play 模式下验证一下集成效果。
-
单击 Play 按钮,然后跑向 Village。
-
按下 ESC 打开《WAG》游戏菜单,然后再次单击 Play 按钮退出 Play 模式。
在逐渐靠近风车时,音量会越来越大。不过,您有没有注意到在 Training Area(训练场)的时候并没有播放风车声,但是一走近就会慢慢听到声音?在 Training Area 应该可以听到 Windmill 声音才对,也好预示附近有人类文明存在。但是,如何判断到底是音量太小还是超出了 Max Attenuation Range(最大衰减范围)呢?为此,我们一般会通过 Game Object 3D Viewer 来检查声音的距离。不过,因为已经添加了 AkAmbient 组件,所以也可利用 Show Attenuation Sphere 属性直接在 Unity 的 Scene 视图中迅速显示并判断 Max Attenuation。