首页 > 解决方案 > SharpDX 将 PS4 游戏手柄视为操纵杆,而不是控制器

问题描述

我对 SharpDX 有疑问。它将我的 PS4 控制器视为操纵杆,而不是控制器。结果,我无法使用某些功能,例如振动。此代码工作正常(作为操纵杆):

foreach (var selectControler in input.GetDevices(DeviceClass.GameControl,DeviceEnumerationFlags.AttachedOnly))
{
    try
    {
        Console.WriteLine("Connected");
        _joystick = new Joystick(input, selectControler.InstanceGuid);
        _joystick.Acquire();
        _timer = new Timer(x => Update());
        break;
    }
    catch (Exception)
    {
        throw;
    }
}

但是这个没有检测到控制器:

for (UserIndex i = UserIndex.One; i <= UserIndex.Four; i++)
{
    _controller =new Controller(i);
    if (_controller.IsConnected)
    {
        Console.WriteLine("Scan Input {0} for gamepad - {1}", i, _controller.GetCapabilities(DeviceQueryType.Gamepad).ToString());
        Console.WriteLine("Connected");
        _timer = new Timer(x => Update());

        break;
    }
    else _controller = null;
}

Steam 和其他应用程序通常会检测到此控制器。预先感谢您的帮助

标签: c#controllersharpdx

解决方案


推荐阅读