第 1 课

目录

添加触发条件

在整个 Allegro 王国,我们会发现有很多板条箱和木桶。每次摧毁它们的时候都可能会生成一枚 Coin(金币)。在 Coin 被实例化时,它会掉在地上,等待冒险家拾取。要想拾取 Coin,冒险家可以直接从它上面跑过去。此时,将会播放 Pickup_Coin Event(事件)。为此,需要使用 AkEvent 脚本来触发此 Event。我们来看下要执行的步骤。

  1. 在 Unity 菜单栏中,依次选择 Audiokinetic > Certification > 301 > Lesson 1 > Trigger Conditions

    接下来,我们要找到并添加 Wwise Adventure Game 工程的 Assets 文件夹中的 301_Coin。

  2. 在 Project 视图中,搜索 301 Coin

  3. 301_Coin 游戏对象拖到 Scene 视图中。

  4. 使用 Move Tool(单击 W)将 301_Coin 放在 Training Area(训练场)的空地上。

    确保 Coin 游戏对象上的绿色 Trigger 没有跟 Player 重叠。

    [备注]

    什么是 Collider/Trigger?我们可以使用 Collider(碰撞器)来检测 Unity 中游戏对象之间的互动情况。Collider 有很多种(Box、Sphere、Capsule 等等),通常用于定义对象 Mesh(网格)的物理性状以此避免对象相互交叉。Trigger(触发器)是用来检测碰撞的 Collider,同时允许其他 Collider 从中穿过。Collider 并不会绘制 Mesh 的形状(比如像使用平面多边形表面一样绘制石头),而只是以不可见的方式使用 Mesh 定义对象的尺寸和形状。

    假如 Player 跟 Sphere Trigger 重叠,Coin 就会在场景启动时被自动拾获。不过,我们想要的是由 Player 去拾获 Coin。这样的话在游戏当中进入启用了 Is Trigger 的 Sphere Collider 时就会触发相应的声音。假如没有显示上图所示的球体框线,请确保在 Inspector 中打开 Sphere Collider 组件。单击名称即可展开。

    [备注]

    严格来说,Trigger 是设成了 Is Trigger 的 Collider。不过为了简便起见,我们直接将其称为 Trigger。

    现在,我们要将声音添加到 301_Coin 游戏对象。不过,这次先不使用 Wwise Picker。我们来学习下如何手动查找并添加所需的预制脚本。这样在后面的认证课程中就知道如何这么做了。

  5. 在 Inspector 中,单击 Add Component

  6. 搜索并选中 AkEvent

  7. 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。

  8. Trigger On 属性中,选择 Nothing

  9. 再次打开,然后选择 AkTriggerEnter

  10. 单击 Play 按钮,然后跑向 Coin。

    您有没有注意到 Pickup_Coin 被发送了好几次?我们对 AkEvent 组件的配置并没有错,只是 Trigger 区域会对每个进入 Trigger 的游戏对象作出响应。在启动游戏时,Trigger 会先检测地面本身并发送事件。然后,在玩家进入 Trigger 时再次发送了相同的事件。