Мне интересно, как я должен обрабатывать ввод для приложений UWP, ориентированных на Xbox One. Я заметил, DirectInput, но я вижу две проблемы с ним для моих случаев использования:Поддержка контроллера Xbox один в Windows UWP
От MSDN, кажется, только для поддержки Xbox 360 контроллеров
XInput является API, который позволяет приложениям получать вход от контроллера Xbox 360 для Windows. Поддерживаются эффекты грохота контроллера и голосовые входы и выходы.
DirectX и все его API (Direct2d, Direct3D, Xinput и т. Д.) Поддерживаются только на C/C++. Это означает, что даже если Xinput поддерживает Xbox один контроллер, я не мог использовать C# или JavaScript для разработки действительно универсальных приложений.
Какие параметры у меня есть (по крайней мере, до C#) для поддержки поддержки контроллера Xbox One в приложении Windows UWP?
UPDATE
Благодаря пару полезных ответов, указывающих правильное пространство имен, я думаю, что я синтезировал код с помощью Windows.Gaming.Input
/*
* Note: I have not tested this code.
* If it is incorrect, please do edit with the fix.
*/
using Windows.Gaming.Input;
// bla bla bla boring stuff...
// Get the first controller
var controller = Gamepad.Gamepads.First();
// Get the current state
var reading = controller.GetCurrentReading();
// Check to see if the left trigger was depressed about half way down
if (reading.LeftTrigger == 0.5;)
{
// Do whatever
}
Если вы используете JavaScript, то:
var controller = Windows.Gaming.Input.Gamepad.gamepads.first();
var reading = controller.getCurrentReading();
if (reading.leftTrigger === 0.5) {
// Do whatever
}
Вот бегущий образец UWP приложения, используя Windows.Gaming.Input https://github.com/tiagonmas/GamepadUWP –
Почему вы используете вар для контроллера и чтения объектов? – BossmanT