使用来自 OS X 的 DualShock 4

Using DualShock 4 from OS X

一时兴起,我买了一个索尼 DualShock 4 无线游戏控制器。将控制器与我的 mac 配对很容易。控制器在 OpenEmu 中按预期工作。

现在我想在自己的游戏中使用控制器。在 XCode 操场上,我尝试了这个:

import Cocoa;
import GameController;

print(GCController.controllers())
print(GCController.controllers().count)

输出为: [] 0

这意味着 DualShock 控制器未注册为 GCController。

应该吗?

在调用控制器之前是否需要进行某种初始化?

一个例子是 Objective-C 或 Swift 欢迎。

这里有一个教程:http://www.raywenderlich.com/forums/viewtopic.php?f=21&t=10339 但这似乎表明 GameController 框架不支持 DualShock 4。

请参阅 Apple 文档,我会从这里开始:https://developer.apple.com/library/mac/documentation/ServicesDiscovery/Conceptual/GameControllerPG/DiscoveringControllers/DiscoveringControllers.html 其中解释了如何发现和连接到控制器。

看起来好像DualShock 4 support was added to the Game Controller framework in 2019。这在 macOS 11.1 上对我有用。

但是,控制器似乎没有出现在对 GCController.controllers() 的初始调用中。您需要注册 GCControllerDidConnect 通知,然后控制器才会显示(适用于 USB 和蓝牙连接)。