第 3 课

目录

在单独的场景中发送 Event

[备注]

在开始学习本节课程之前,请务必先完成前面的“利用 Trigger 加载 SoundBank”章节。

“将游戏对象指派到单独的场景中”这种方式有很多优点。一来可以最大限度地减少同时加载的素材数量;二来可以同时激活归为一类的各种素材。让我们来回顾一下前面章节中讲到的 L3_1 - Loading SoundBanks using Triggers 场景。在该场景中,我们会看到 Waterfall(瀑布)游戏对象。接下来,我们将以此为例阐明上面所说的优点。

Waterfall 游戏对象是瀑布的图形渲染文件。在它的下面,我们会看到 Waterfall_UpClose 子游戏对象。该对象添加了 Ambient_Waterfall AkEvent。因为 Ambient_Waterfall Event(事件)包含在了 Woodlands SoundBank(音频包)中,所以至少应将 Waterfall_UpClose 游戏对象添加到 Woodlands 场景。然而,只有在进入 Woodlands 场景时,Player 才能看到 Waterfall。所以,最好还是将整个 Waterfall 游戏对象添加到 Woodlands 场景中。

[备注]

虽然子游戏对象的位置相对于父对象略有偏差,但系统并不会单独对两者进行声音定位。Wwise 只会考虑游戏对象在整个空间中的位置,而不会区别看待子对象和父对象。

接下来,我们将把 Waterfall 游戏对象移到 Woodlands 场景。这样就会随着 Woodlands 场景激活和加载 Waterfall 游戏对象。

  1. 在 Project 视图中,搜索 Woodlands,然后将 Woodlands 场景拖到 Hierarchy 中。

  2. 在 Hierarchy 中,找到并选中 Waterfall 游戏对象。

    我们只需要在 Player 进入 Woodlands 区域时加载 Waterfall 游戏对象(Waterfall_UpClose 的父对象)。为此,我们来将其从主场景拖到 Woodlands 场景中。

  3. Waterfall 游戏对象拖到 Woodlands 场景中。

    这样就可以了。之前设置的场景结构的其他部分自会卸载和加载场景中的各种内容。为了实践效果,我们来使用 Profiler 的 Voices Graph 对游戏进行性能分析,并重点察看 Ambient_Waterfall Event,确保在加载场景时正常发送和停止该 Event。

  4. 在 Wwise 菜单栏中,单击 Layouts(布局),然后选择 Profiler(性能分析器)。

  5. 在 Advanced Profiler(高级性能分析器)的 Voices Graph(声部图)选项卡中,单击 Filter(筛选器)右侧的“浏览”按钮 [...]

  6. 依次展开 Events > Ambient > SoundBankSpecific,然后选中 Ambient_Waterfall Event 并单击 OK(确定)。

    在将 Filter 设为 Ambient_Waterfall Event 后,Voices Graph 中将仅显示 Waterfall Event。在进入 Play 模式前,确保移除场景,以便直接地自动加载。

  7. 在 Unity 中,首先 Save Scene ,然后 Remove Scene

    在本练习中对游戏进行性能分析时,建议并排放置 Unity 和 Wwise。假如屏幕分辨率太低看不清楚,还可尝试将重点要用的 Advanced Profiler 窗口分离出来,单独放在 Unity 旁边。

  8. 调节 Unity 和 Wwise 窗口,以便并排显示两边的内容。

    [备注]

    通过在 Unity 的 Game 视图中选择 Maximize on Play,可在进入 Play 模式时将游戏画面展开到 Unity Editor 的边缘,便于在游戏中更加轻松地导航。在处于 Play 模式时,按下 Pause 会将窗口暂时恢复为正常布局。

  9. 在 Wwise 中,单击 Remote…(远程...)。

  10. 在 Remote Connections(远程连接)窗口中,选中 Wwise Adventure Game (Editor),然后单击 Connect(连接)。

  11. 单击 Play

  12. 跑进 Woodlands Trigger,同时确保 Main Camera 位于该 Trigger 之外。

    我们注意到,Waterfall Event 还没有被激活。

  13. 将 Main Camera 旋转到 Woodlands Trigger 之内。

    在将 Main Camera 旋转到 Woodlands Trigger 之内时,将加载 Woodlands Scene,进而发送 Ambient_Waterfall Event。

    [备注]

    假如看不到红色透明网格表面,请退出 Play 模式,然后返回之前的练习章节,并将 Woodlands Trigger 边界设到勉强覆盖小桥的位置。

  14. 将 Main Camera 旋转到 Woodlands Trigger 之外。

    在 Main Camera 处在 Woodlands Trigger 之外时,LoadSceneAsyncOnEnter 脚本将会识别当前状态,并在几秒后卸载和移除场景及其包含的 Ambient_Waterfall Event。

    利用这种方式管理场景中的游戏对象,可确保 Event 与 所属 SoundBank 一起加载和卸载,就跟前面使用性能分析器展示的那样。接下来,我们要重置 Advanced Profiler 的 Voices Graph 视图,然后退出 Play 模式。

  15. 在 Wwise 中,单击 Filter 旁边的“浏览”按钮 [...]

  16. 在窗口最上面,选择 None(无),然后单击 OK

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


此页面对您是否有帮助?