我想知道我应该如何处理针对Xbox One的UWP应用的输入。我注意到了DirectInput,但我发现它有两个问题:
从MSDN开始,它似乎只支持Xbox 360控制器
XInput是一个API,允许应用程序从Xbox 360 Controller for Windows接收输入。支持控制器隆隆效果和语音输入和输出。
DirectX及其所有API(Direct2d,Direct3D,Xinput等...)仅在C / C ++上受支持。这意味着即使Xinput支持Xbox one控制器,我也无法使用C#或JavaScript来开发真正的通用应用程序。
在Windows UWP应用上支持Xbox One控制器支持,我有哪些选项(至少就C#而言)?
答案 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控制器方面用处不大,并且无法区分未持有触发器和持有两个触发器。