使用来自 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 和蓝牙连接)。
一时兴起,我买了一个索尼 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 和蓝牙连接)。