版本

menu_open

集成详情——游戏对象

简介

游戏对象(Game Object)是可以连接界面、声音和触发器等元素的实体。

游戏对象被定义为 AkGameObjectID(无符号的 32 位字段)。您可以选择不等于 0x00000000、0x00000001 或 0xFFFFFFFF 的任何 ID(因为这三个值是内部预留值)。 所以,您可以从 0x00000002 开始生成游戏对象,然后递增,也可以把真实指针转换成真实游戏对象。

游戏对象关联

声音引擎中触发的每个事件均与游戏对象相关联。如果所有事件动作(event action)针对特定游戏对象,则它们将关联到作为 AK::SoundEngine::PostEvent() 函数参数传递的游戏对象。如果事件动作不针对游戏对象,它们则将忽略指定的游戏对象。如果动作会影响单个游戏对象,但 AK::SoundEngine::PostEvent() 中指定的游戏对象无效,则不会执行该动作。

每个游戏对象可能有相关的 3D 位置、针对各个切换开关组的切换开关、针对各个 RTPC 的 RTPC 值,以及在特定项目(声音、角色混音器、总线等)上为特定游戏对象设置的多个值(例如音量)。声音引擎一直存储着这些信息,直到与这些值相关的游戏对象被注销。

注册游戏对象

您需要先为游戏对象注册,而后才可以使用它们。当您不再需要这些游戏对象时,应将其注销。虽然保持它们的注册状态不会造成错误,但是存储这些信息会浪费内存(3D 位置、RTPC、切换开关等)。

AK::SoundEngine::RegisterGameObj() 函数存在两个版本:

以及

AK::SoundEngine::RegisterGameObj( AkGameObjectID in_gameObjectID, const char * in_pszObjName );

此函数的第二个版本用于监控目的。它可以指导 Wwise 显示正在播放的对象的真实名称。在 AK_OPTIMIZED 模式下,第二个版本忽略对象名称。

有两个函数可以用来注销游戏对象:

以及

AK::SoundEngine::UnregisterAllGameObj() 对当前为每个游戏对象设置的所有参数执行全面清理,并移除所有游戏对象关联。UnregisterGameObj() 的功能与之相同,但针对的是单个游戏对象。游戏对象一旦被注销,再次使用前则必须重新注册。

有关集成游戏对象的示例,请参阅 游戏对象示例

参见:

此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅