GameInput 概述
GameInput 是下一代输入 API,它通过单个一致的接口公开所有类型的输入设备。 它使用了一种简单的编程模型设计,便于使用。 GameInput 是从头开始生成的,以实现最佳性能。 GameInput API 的主要功能如下。
可用性
GameInput 可通过 NuGet 在 GDK 和电脑 Xbox 上使用。 支持返回到 Windows 10 19H1(2019 年 5 月更新)的较旧版本的 Windows。
一致性
GameInput 通过单个统一的输入模型(同步到公共时基),公开来自键盘、鼠标、游戏板以及其他游戏控制器的输入。 用于处理来自这些设备的输入的代码几乎完全相同,并且使用许多相同的功能,但应用了不同的筛选器。 这样无需对输入代码进行重大改变,就可以轻松地添加对其他输入设备的支持。
功能
除了添加自己的新功能之外,GameInput 还是所有旧输入 API–XInput、DirectInput、原始输入、人机接口设备 (HID) 和 WinRT API–的功能超集。 GameInput 的功能涵盖从简单的固定格式游戏板状态到详细的低级别原始设备访问。 可通过轮询或以事件驱动的形式回调获取输入。 完全支持触觉回馈和力回馈,并且第三方设备 SDK 可以轻松写入 GameInput 顶部,以便提供对自定义设备功能的访问权限。
性能
GameInput 是在一个全新的直接内存访问 (DMA) 体系结构基础上生成的,用于可能最低的输入延迟和资源使用率。 几乎所有 API 函数都是无锁的,具有严格的性能保证,同时仍然是 100% 线程安全。 这使它们可以安全地从时间敏感的上下文(如呈现线程)中调用。 高级应用程序可以直接控制对 GameInput 的内部异步工作队列的计划,并且控制哪个线程完成工作以及执行频率。
可用性
GameInput 在设计上以能够轻松使用作为首要目标。 仅使用几行代码就可以实现大多数常见的输入任务。
使用入门
GameInput 是所有新代码的推荐 API,无论目标平台如何,因为它提供了对所有 Microsoft 平台(包括早期版本的 Windows)的支持,并提供了优于传统 API 的卓越性能。
注意
对于在适用于 Xbox One 的 Microsoft 游戏开发工具包 (GDK) 上开发的游戏,GameInput 是唯一可用的输入 API。
如果要开发面向电脑的游戏,则应从 Microsoft.GameInput] NuGet 包安装 GameInput。
要了解有关 GameInput API 的详细信息,请从 GameInput 基础知识开始。
如果您在从某一现有代码库移植输入代码,请参阅 GameInput 移植指南以了解特定于 API 的指南。