Windows UWP中对Xbox one的控制器支持

时间:2015-08-13 00:47:43

标签: c# xbox uwp xinput xbox-one

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

  1. MSDN开始,它似乎只支持Xbox 360控制器

      

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

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

  3. 在Windows UWP应用上支持Xbox One控制器支持,我有哪些选项(至少就C#而言)?

3 个答案:

答案 0 :(得分:13)

查看Windows.Gaming.Input命名空间。它的GamePad类属于Universal API合同,适用于所有设备系列和语言。

答案 1 :(得分:4)

要使用源代码支持@Rob Caplan - MSFT,Microsoft Developer Network的此blog声明:

  

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

答案 2 :(得分:0)

  

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

是,仅本地支持,但是使用SharpDX从C#实现DirectInput很简单
但是,由于将触发轴合并为一个,因此DirectInput在读取XB控制器方面用处不大,并且无法区分未持有触发器和持有两个触发器。