Я пытаюсь использовать контроллер PS3 для игры, которую я создаю. Я загрузил расширение sharpDX.DirectInput в свое решение XNA для визуальной студии и использовал, казалось бы, простой код из ответа Вальдемара в Получение данных с джойстика с помощью C# .NET. Я уже сузил проблему до того, что он не может найти ни guid контроллера, ни guid других USB-устройств, таких как клавиатура. Однако это работает для встроенной клавиатуры моего ноутбука. Вот мой код:
directInput = new DirectInput();
// Find a Joystick Guid
foreach (var deviceInstance in directInput.GetDevices(DeviceType.Gamepad, DeviceEnumerationFlags.AllDevices))
guid = deviceInstance.InstanceGuid;
//create joystick
if (guid!=Guid.Empty)
controller = new Joystick(directInput, guid);
Проблема в том, что контроллер остается нулевым, а значит, и guid остается пустым, а значит, метод GetDevices не находит геймпад. Что странно, потому что контроллер отлично работает в Windows 7 и виден в диспетчере устройств как HID и как общий контроллер Microsoft для класса Windows.
Кстати, у меня возникла та же проблема с использованием Microsoft.DirectX.directInput.
Спасибо за чтение :)