GameInput API 版本控制

注意

如果针对 Xbox 进行开发,则 v.0 版本是主机上唯一可用的版本,并且包含在 GDK 安装程序中。 GameInput v.1 API 目前仅适用于电脑,并通过 Microsoft.GameInput NuGet 包分发。

GameInput 是一种动态 API,随着新功能的添加和删除不需要的/已取消的功能,它将随着时间推移而不断演变。 可以在官方 NuGet 包中找到最新版本的 GameInput。 此包将始终包含要包含在游戏中的最新 GameInput 标头、二进制文件和可再发行组件。

升级到较新版本的 GameInput 旨在快速且轻松。 此外,无论最新 GameInput 标头中描述的 API 如何,都会为针对早期版本的 GameInput 编译的应用程序维护二进制和功能兼容性。 在此模型中,已交付的游戏可以在 GameInput 中享受改进,并可以在必要时转换为最新版本的 GameInput,以利用新功能。

升级运行时和 API 版本

不同版本的 GameInput 具有外观相似的名称和方法,但使用不同的 UUID 和 (进行版本控制,从 GameInput API v.1 开始,) 在唯一命名空间中定义, (例如 GameInput::v1) 。 这些接口由 GameInput 中的相同基础对象实现,你可以 通过 QueryInterface 在版本之间切换,以便根据需要在游戏中混合使用 API。

如果要从全局命名空间中定义了 API 的 GameInput v.0 升级,你可能会发现添加 using namespace GameInput::v1 语句有助于减少为采用 v.1 API 而必须更新的 GameInput 调用站点的数量。

除了运行时版本检查之外,还可以通过检查 GAMEINPUT_API_VERSION 处理器定义来进行条件编译。 此定义对应于当前使用的 GameInput API 版本 (以及 GameInput 主版本) 。 v.0 API 不具有此定义,因此,如果要有条件地测试此版本,可以在 GameInput 标头包含后添加以下代码片段。

#ifndef GAMEINPUT_API_VERSION
#define GAMEINPUT_API_VERSION 0
#endif

仅升级运行时

GameInput 允许你获取最新的 bug 修复,而无需强制更新 API 使用情况。 为此,只需安装捆绑在最新 Microsoft.GameInput NuGet 包中的 GameInput 可再发行组件。 由于 GameInput 与旧版 API 保持二进制兼容,因此可以继续使用现有标头和新运行时。

另请参阅

GameInput NuGet 包