我正在尝试将 ps3 控制器用于我正在创建的游戏。我将sharpDX.DirectInput 扩展下载到我的Visual Studio XNA 解决方案中,并使用了Valdemar 在使用C# .NET 从操纵杆中输入的答案中看似简单的代码。我已经将问题缩小到他找不到控制器的 guid,也找不到其他 USB 连接设备(如键盘)的 guid。不过,它确实适用于我笔记本电脑的集成键盘。这是我的代码:
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 和 Windows 类的 Microsoft 通用控制器可见。
顺便说一句,我在使用 Microsoft.DirectX.directInput 时遇到了同样的问题。
谢谢阅读 :)