目录
在整个 Allegro 王国,我们会发现有很多板条箱和木桶。每次摧毁它们的时候都可能会生成一枚 Coin(金币)。在 Coin 被实例化时,它会掉在地上,等待冒险家拾取。要想拾取 Coin,冒险家可以直接从它上面跑过去。此时,将会播放 Pickup_Coin Event(事件)。为此,需要使用 AkEvent 脚本来触发此 Event。我们来看下要执行的步骤。
-
在 Unity 菜单栏中,依次选择 Audiokinetic > Certification > 301 > Lesson 1 > Trigger Conditions。
接下来,我们要找到并添加 Wwise Adventure Game 工程的 Assets 文件夹中的 301_Coin。
-
在 Project 视图中,搜索 301 Coin。
-
将 301_Coin 游戏对象拖到 Scene 视图中。
-
使用 Move Tool(单击 W)将 301_Coin 放在 Training Area(训练场)的空地上。
确保 Coin 游戏对象上的绿色 Trigger 没有跟 Player 重叠。
假如 Player 跟 Sphere Trigger 重叠,Coin 就会在场景启动时被自动拾获。不过,我们想要的是由 Player 去拾获 Coin。这样的话在游戏当中进入启用了 Is Trigger 的 Sphere Collider 时就会触发相应的声音。假如没有显示上图所示的球体框线,请确保在 Inspector 中打开 Sphere Collider 组件。单击名称即可展开。
严格来说,Trigger 是设成了 Is Trigger 的 Collider。不过为了简便起见,我们直接将其称为 Trigger。
现在,我们要将声音添加到 301_Coin 游戏对象。不过,这次先不使用 Wwise Picker。我们来学习下如何手动查找并添加所需的预制脚本。这样在后面的认证课程中就知道如何这么做了。
-
在 Inspector 中,单击 Add Component。
-
搜索并选中 AkEvent。
-
在 Event Name 属性中,依次展开 Events > Player > General,然后双击 Pickup_Coins。
如此一来,在游戏启动时,便会通过引用 301_Coin 游戏对象来发送 Pickup_Coin Event。接下来,我们要指派用来触发 Event 的方式。在 301_Coin 游戏对象上,我们会看到 Sphere Collider 设成了 Is Trigger。在 AkEvent > Trigger On 属性中,有各种常用的声音触发方式可供选择。假如要在进入 Sphere Trigger 时触发 Pickup_Coin Event,可选用 AkTriggerEnter 选项。注意,Trigger On 属性设成了 Start。若要撤消之前选择的所有条件而仅选中 AkTriggerEnter 一项,请先选择 Nothing 来全部重置,然后再选择 AkTriggerEnter。
-
在 Trigger On 属性中,选择 Nothing。
-
再次打开,然后选择 AkTriggerEnter。
-
单击 Play 按钮,然后跑向 Coin。
您有没有注意到 Pickup_Coin 被发送了好几次?我们对 AkEvent 组件的配置并没有错,只是 Trigger 区域会对每个进入 Trigger 的游戏对象作出响应。在启动游戏时,Trigger 会先检测地面本身并发送事件。然后,在玩家进入 Trigger 时再次发送了相同的事件。