OpenTK 識別 PS4v2 控制器(透過 USB)



当我使用OpenTK.Input.GamePad.GetName(i)查询 OpenTK 应用程序中的 PS4 v2 连接控制器的名称时,我得到"未映射的控制器",轴和按钮值到处都是。我想让我的应用程序同时适用于 Xbox 360/One 和 PS3/4 控制器,因此我需要一种方法来区分两者并在需要时应用映射。

首先,我认为 OpenTK缺乏对此类控制器的支持,这就是为什么它将其报告为未映射的控制器(我实际上刚刚检查了 OpenTK 源代码,似乎为 PS4 控制器定义了特定的映射,我很惊讶为什么它不起作用。可能是因为 v2 版本吗?所以我需要一种方法来判断我连接的控制器是否是 PS4 控制器,以便对其应用自定义映射。

有没有办法获取OpenTK游戏手柄的真实设备名称,而不是通用的"未映射控制器"标题?

我正在使用OpenTK 3.0.1。

OpenTK是跨平台的,你能分享一下你在哪个操作系统上使用它吗?许多游戏手柄驱动程序逻辑都是特定于平台的。如果您使用的是基于 Linux 的操作系统,则内核版本在游戏手柄兼容性问题方面也很重要。

看起来 OpenTK 可能正在使用 SDL2 进行游戏手柄输入。如果是这种情况,您需要检查它使用的是哪个版本的 SDL2,并可能使用新的游戏手柄信息更新 gamecontrollerdb.txt 配置文件:

https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt

Dualshock 4 游戏手柄很复杂,您需要多个条目才能正确支持其所有版本和模式,尤其是在 Linux 上。除了V1/V2差异之外,还有hid-sony Linux驱动程序的更新,改变了设备向应用程序公开的方式。SDL2 需要更新才能在新映射中正常工作。

最新更新