0

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

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

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

我正在使用 OpenTK 3.0.1。

4

1 回答 1

0

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 才能正确使用新映射。

于 2018-08-20T16:49:57.213 回答