目录
上节我们学习了如何将 AkEnvironment 脚本添加到 Trigger。不过,假如您想从头开始创建一个新的 Aux Environment(辅助环境),还要学会如何执行更多相关的操作。除了要将 Collider 设为 Is Trigger,还需使用 Rigidbody 组件和 AkGameObj 脚本。

在 Unity 管理游戏对象位置时,AkGameObj 会将这些位置、相关的 Game Sync(游戏同步器)以及 Environment 值报告给 Wwise。

在添加 AkEvent 或 AkAmbient 组件或者直接在 Play 模式下触发声音时,会自动添加 AkGameObj 组件。不过,要想将环境信息(如辅助总线指派)发送给 Wwise,必须确保把 AkGameObj 设为 Environment Aware。
Rigidbody 组件允许游戏将物理控制下的运动应用到对象。

这其中包括计算特定方向上的重力或速度。因为每次的运动都是在 Unity 的物理引擎中统一计算的,所以 Unity 也会知道这些对象之间是否重叠 (Trigger) 或碰撞 (Collider)。Rigibody 会利用同一游戏对象上绑定的 Collider 组件来计算重叠或碰撞情况。因此,我们只需将一个 Rigidbody 绑定到两个游戏对象之一即可。
![]() | |
|
最好将 Rigidbody 添加到 AkEnvironment 游戏对象,以此最大限度地减少场景中添加的 Rigidbody 数量。 |
接下来,我们将在 Woodlands(林地)创建一个新的 Trigger,并通过 AkEnvironment 脚本来为其添加其余的 Rigidbody 和 AkGameObj。
-
在 Unity 菜单栏中,依次转到 Audiokinetic > Certification > 301 > Lesson 6,然后选择 Creating an Aux Environment。
-
在 Unity 菜单栏中,依次转到 GameObject > 3D Object,然后选择 Cube。
此时,将会在 Hierarchy 中生成 Cube 形状实例。
-
右键单击 Cube 游戏对象,然后选择 Rename 并键入 Woodlands。

-
将 Woodlands 游戏对象从 Hierarchy 拖到 AUX Environments 游戏对象中。

接下来,我们先调节 Trigger 的形状以使其与 Woodlands 相称。Woodlands 区域包含 Road to the Woodlands 和 Road to the Pine Forest。最好每个部分都能拥有不同的声学效果,这样便只需创建 Woodlands 中心,并将 Waterfall(瀑布)、Evil Spit Plant(喷弹怪)等覆盖在内。
-
使用 Move Tool、Rotate Tool 和 Scale Tool 来调节 Woodlands Trigger,使其覆盖 Woodlands 区域最中间的部分。

接下来,我们通过添加各种脚本并禁用不需要的组件来配置游戏对象。首先,通过禁用 Mesh Renderer 来将其设为不可见,因为在游戏当中不能玩家让看到 Trigger。
-
在 Inspector 中,禁用 Mesh Renderer 组件。

目前 Box Collider 没有设成 Trigger。也就是说,其他 Collider 是没有办法进入其内的。
-
在 Box Collider 中,选中 Is Trigger 复选框。

接下来,将 AkEnvironment 脚本添加到游戏对象。
-
单击 Add Component,然后搜索并选中 AkEnvironment。
我们注意到,AkEnvironment 将自动提示目前尚未在 AkEnvironment 上添加 Rigidbody,并会提供相应的添加按钮。

在《Wwise Adventure Game》中,最好将 Rigidbody 添加到 AkEnvironment 上。这样就可以最大限度地减少场景中所需的 Rigidbody 数量,从而减轻物理计算和 CPU 处理负荷。
-
在 AkEnvironment 中,单击 Add Rigidbody。
此时,警告消息和 Add Rigidbody 按钮将会消失,同时会在下方添加一个 Rigidbody。
我们要按照跟前面章节一样的方式来为 AkEnvironment 组件指派辅助总线。
-
在 AuxBus Name 属性中,选中 Woodlands 辅助总线并单击 OK。

最后,其他所有用于发送 Event(事件)游戏对象都已经添加了 AkGameObj 组件,只有 Player 还没有添加。为此,我们需要将 AkGameObj 添加到 Player 游戏对象。这样的话 Aux Environment 就会注册 Player 所触发的全部声音。
-
在 Hierarchy 中,选中 Player 游戏对象。
-
在 Inspector 中,单击 Add Component,然后搜索并选中 AkGameObj。
现在,我们会看到为 Player 游戏对象添加了 AkGameObj 组件,同时选中了 Environment Aware 选项。
搞定!现在,我们创建了一个具有完备 Aux Environment 功能的 Trigger。接下来,我们利用 Profiler 来验证一下整合效果。
-
在 Wwise 菜单栏中,转到 Layouts(布局),然后选择 Profiler(性能分析器)。
-
在 Advanced Profiler(高级性能分析器)的 Voices Graph(声部图)中,单击 Object Filter(对象筛选器)旁的“浏览”按钮 [...],然后依次展开 Master-Mixer Hierarchy > Default Work Unit > Master Audio Bus > World > AUX > Region_Woodlands(Master-Mixer 层级结构 > 默认工作单元 > 主音频总线 > World > AUX > Region_Woodlands),最后选中 Woodlands 辅助总线并单击 OK(确定)。

-
在 Remote Connections(远程连接)视图中,选中 Wwise Adventure Game (Editor) 并单击 Connect(连接),然后在 Unity 中按下 Play 按钮进入场景,并跑到 Woodlands。

在 Wwise 中,仔细看下 Advanced Profiler。我们注意到,Ambient_Waterfall 和 Ambient_Region_Woodlands Event 在使用 Woodlands 辅助总线,而且 Trigger 之内所有实例化的声音事件(如 Player_WeaponSwing 或 EvilSpitPlant_ShootBullet Event)也将使用该辅助总线。现在您可以退出 Play 模式了。
![[备注]](/images/wwise301/?source=wwise301&id=note.png)