第 5 课

目录

Switch

在前面的“利用 Wwise 专有属性设置 Switch”章节中,我们学习了如何为 Player 的脚步声设置 Surface_Type Switch(切换开关)。除此之外,Impact_Weapon_Type Switch Container 也使用了相同的 Switch Group(切换开关组)。该 Switch Container(切换容器)会在 Player 的武器击中物体表面时调用。Footstep_Surface 和 Impact_Weapon_Type Switch Container 都是由 Player 触发的,而且使用了相同的 Switch Group。那么,在移动和攻击动作之间交替切换时会发生什么呢?两个 Switch Group 之间难道不会相互干扰吗?

接下来,我们捕获 Profiler Session(性能分析器会话),来看看 Switch 的变换。因为在此并不需要修改属性或场景素材,所以我们可以使用完整版本游戏的 Main 场景。

  1. 在 Unity 菜单栏中,依次转到 Audiokinetic > Game Scenes,然后选择 Main 场景。

  2. 单击 Play 按钮进入 Play 模式,然后在 Wwise 中单击 Connect(连接)来连接《WAG》。

  3. 按下 E 跳过提示会话,直到在 Game 视图中看到冒险家。

  4. 在 Training Area(训练场)内,跑向附近的石头并实施攻击。

  5. 在草地和泥地上走几步,然后再次击打石头。

  6. 再次单击 Play 按钮,退出 Play 模式。

  7. 在 Wwise 的 Capture Log(捕获日志)中,单击 Filter...(筛选器...)。

  8. 取消选中 Switches(切换开关)和 Events(事件)以外的所有其他选项,然后单击 OK(确定)。

    接下来,我们仔细看下 Capture Log。

  9. 在 Capture Log 的 Wwise Object Name(Wwise 对象名称)列中,找到第一条 Player_WeaponImpact Object 日志条目,并注意上面设置的 Surface_Type Switch。

    因为 Player 的 Sword 击打了 Stone,所以将把 Surface_Type Switch 设为 Stone。相应地,我们会听到武器击打石头的声音。

    我们注意到,稍后又将 Surface_Type 设为了 Grass。这时 Switch 用于了 Player_Footstep Switch Container。记住这一点,并搜索第二条 Player_WeaponImpact 日志条目。

  10. 在 Capture Log 的 Wwise Object Name 列中,找到第二条 Player_WeaponImpact Object 日志条目。

这时会再次听到 Weapon 击打石头的声音,尽管上一 Surface_Type Switch 日志条目为 Grass。这是因为 Grass Surface_Type 设在了 Player 的双脚(toe_left 和 toe_right 游戏对象)上而非 Player_WeaponImpact 所用的游戏对象上。两者是不同的。相反,Player_WeaponImpact 是关联到 WeaponHolder 游戏对象的,而该游戏对象在将 Surface_Type Switch 设为 Stone 之后并没有发生变化。由此可见,我们可以将 Switch 有效地用在多个游戏对象上。只要不将其重复用在同一游戏对象上,其相互之间就不会产生干扰。