16

我想知道我应该如何处理针对 Xbox One 的 UWP 应用程序的输入。我注意到 DirectInput,但我发现它在我的用例中存在两个问题:

  1. MSDN看来,它似乎只支持 Xbox 360 控制器

    XInput 是一个 API,它允许应用程序从 Windows 的 Xbox 360 控制器接收输入。支持控制器隆隆声效果和语音输入和输出。

  2. DirectX 及其所有 API(Direct2d、Direct3D、Xinput 等)仅在 C/C++ 上受支持。这意味着即使 Xinput 支持 Xbox one 控制器,我也无法使用 C# 或 JavaScript 开发真正通用的应用程序。

我有哪些选择(至少就 C# 而言)来支持 Windows UWP 应用上的 Xbox One 控制器支持?

4

3 回答 3

13

看看Windows.Gaming.Input命名空间。它的GamePad类在通用 API 合同中,可用于所有设备系列和语言。

于 2015-08-13T04:41:11.527 回答
4

为了支持@Rob Caplan - MSFT,微软开发者网络的这篇博客指出:

Windows 10: Windows.Gaming.Input命名空间中有一个用于通用 Windows 应用程序的新 WinRT API 。此 API支持 Xbox 360 通用控制器和 Xbox One 控制器,包括访问左/右触发电机。最新版本的GamePad 在为 Windows 10 构建时使用此新 API 实现。请注意,现有的基于 XInput 的 Windows 应用商店应用程序可以链接到 xinputuap.lib,它是通用 Windows 应用程序的新 API 的适配器——该适配器也不存在耳机音频。

于 2015-08-13T05:58:27.527 回答
0

DirectX 及其所有 API(Direct2d、Direct3D、Xinput 等)仅在 C/C++ 上受支持

仅本机支持,是的,但是使用SharpDX
从 C# 实现 DirectInput 是微不足道的。 但是,DirectInput 对读取 XB 控制器没有多大用处,因为触发轴合并为一个,并且无法区分没有触发器保持和两个触发器都保持。

于 2019-03-28T15:41:35.860 回答