第 1 课

目录

限制触发条件

[备注]

在开始学习本节课程之前,请先回顾一遍开头“触发条件”章节所讲的内容。

在将 Trigger 添加到游戏对象后,每次与其他 Trigger 和 Collider 碰撞时都会报告给 AkTriggerEnter 函数。也就是说,除非专门指定 Collider 或 Trigger 类型,否则像 301_Coin 这样的游戏对象会同时针对所有其他与其交叉的 Trigger 播放 Pickup_Coin Event(事件),而不是只在 Player 进入 Trigger 拾获 Coin 时播放该事件。为了解决这一问题,我们可以将 AkTriggerEnter 脚本添加到 301_Coin 游戏对象。

在将 AkEvent 设为 AkTriggerEnter 之后,AkEvent 会在启动游戏时查找 AkTriggerEnter 脚本。

在 AkTriggerEnter 组件中,我们会看到 Trigger Object 属性。在该属性为空时,组件将会对每次碰撞作出响应。通过将游戏对象添加到该属性,我们可以对组件进行限制,规定只对该特定游戏对象作出响应,而忽略所有其他游戏对象。

[备注]

AkTriggerEnter 的 Trigger Object 无法指派给其他场景中的游戏对象。假如需要在自己的游戏中这么做,您可以编写自定义脚本并查找可用的游戏对象。

接下来,我们将 AkTriggerEnter 脚本添加到 Coin,以确保只在 Player 拾获 Coin 时触发该脚本。

  1. 在 Hierarchy 中,选中 301_Coin 游戏对象。

  2. 在 Inspector 中,添加 AkTriggerEnter 组件。

    在 AkTriggerEnter 组件中,找到空白的 Trigger Object 属性。因为拾获物品的动作是冒险家完成的,所以在这里我们选择 Player。假如 Trigger Object 属性是空白的,将会检测所有游戏对象。

  3. 在 Hierarchy 中,单击并按住 Player 游戏对象,然后将其拖到 Inspector > AkTriggerEnter 组件 > Trigger Object 属性中。

  4. 单击 Play 按钮,然后跑过去拾获 Coin。

    注意,现在只会在 Player 拾获 Coin 时触发 Coin 拾获声音。

  5. 按下 ESC 打开《WAG》游戏菜单,然后再次单击 Play 按钮退出 Play 模式。