目录
在开始学习本节课程之前,请务必先完成前面的“创建 Wwise 专有 Event 属性”章节。 |
接下来,我们使用 Start() 函数来发送 Event(事件)。该函数将在运行游戏时调用一次。在编写脚本时,可通过在属性名称后键入句点 . 来访问类属性的函数、变量或属性。在上节课程中,您可能注意到了,此时 Visual Studio 将会显示与类相关的选项列表以供快速插入内容。
-
在 Start() 函数中,键入 MyEvent,并在其之后添加一个句点 .。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PostWwiseEvent : MonoBehaviour { public AK.Wwise.Event MyEvent; // 使用此函数进行初始化。 void Start () { MyEvent. } // 每帧调用 Update 函数一次。 void Update () { } }
这段代码会告知 Unity 我们要针对 Event 执行某项操作。
在按下句点后,将会显示下拉菜单。在该下拉菜单中,Visual Studio 收集了一系列可用于 AK.Wwise.Event 类的函数和变量。
假如代码编辑器中没有显示下拉菜单,您可以按照以下步骤直接手动键入。我们将使用 Post() 函数来播放 Event。
-
在 MyEvent. 之后,键入或双击 Post()。
public AK.Wwise.Event MyEvent; // 使用此函数进行初始化。 void Start () { MyEvent.Post() }
目前函数调用还不完整。通过将鼠标悬停在函数上,我们会获得一条有关缺失内容的帮助消息。
这条消息会提供很多信息,但是归根结底,该函数至少需要一个用来触发声音的游戏对象。在此,我们将针对与脚本绑定的同一游戏对象(Player 游戏对象)来触发声音,所以直接键入以下内容即可,无需指定特定的游戏对象。
-
在 Post() 的圆括号中,键入 gameObject。
public AK.Wwise.Event MyEvent; // 使用此函数进行初始化。 void Start () { MyEvent.Post(gameObject) }
最后,添加一个分号来结束该代码行。这将是构建脚本的最后一步,所以最好浏览一遍刚才编写的脚本,确保没有忘记添加分号和右大括号。
-
在 MyEvent.Post(gameObject) 之后,添加一个分号 ;。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PostWwiseEvent : MonoBehaviour { public AK.Wwise.Event MyEvent; // 使用此函数进行初始化。 void Start () { MyEvent.Post(gameObject); } // 每帧调用 Update 函数一次。 void Update () { } }
搞定!接下来,我们便可在 Inspector 中指派 Event,并在启动游戏时针对 Player 游戏对象发送该 Event。下面来试试吧。
-
保存脚本,然后在 Unity Inspector 中,转到 PostWwiseEvent,接着单击 MyEvent Property Drawer,最后双击 Destruction_Rock_Destroy Event。
我们注意到,Property Drawer 自动打开了 Wwise 工程中的 Events 文件夹。
-
单击 Play 按钮,进入游戏试听一下 Event。
在游戏加载完成后,我们会听到针对 Player 游戏对象触发了巨石撞击声。由此可知,我们通过脚本成功地发送了 Event。您可能会想:“为什么我们要在 Player 游戏对象上添加岩石碎裂声呢”?其实,Destruction_Rocks Event 只是为了测试一下刚才编写的脚本是否能够正常运行。在下节课程中,我们将以本节练习为基础使用同样的脚本来通过动画发送 Event。现在您可以退出 Play 模式了。
脚本编写对游戏开发来说至关重要。假如您以后要在 Unity 中设计游戏,我们相信事先对脚本知识的学习和运用一定会给您带来很大便利。