Sti*_*sis 7 objective-c gamepad tvos siri-remote
我正在使用Objective-C开发一款游戏.Siri遥控器通过GCMicroGamepad可以很好地工作,真正的MFi控制器可以通过GCGamepad很好地工作.但是,第三方IR遥控器在游戏中根本不起作用(iPhone上的远程应用程序或旧的Apple TV第三代遥控器也没有).
如何识别和区分这些输入?
两天后......我发现当使用第三方电视遥控器或iPhone Remote.app时,可以使用UITapGestureRecognizer正确检测Up,Down,Left,Right和Select事件.定向事件实际上对于这些类型的遥控器也是唯一的--Siri遥控器不会生成定向抽头事件.不幸的是,点击Siri遥控器或第三方或iPhone Remote.app上的选择按钮将从我的点击识别器生成一个Select事件.我需要一些方法来区分这两者.
我能找到的唯一区别因素是点击Siri遥控器还会在GCMicroGamepad上生成按钮-A按下 - 第三方遥控器或iPhone Remote.app根本不会影响GCMicroGamepad.但尝试观看GCMicroGamepad以进行点击释放事件,然后使用该事件过滤掉匹配的"选择"按钮事件是非常不优雅的.当然不推荐使用API; 它似乎不是一个好的长期解决方案.如果我能告诉Siri遥控器在GCMicroGamepad模式下停止生成UI事件,那将是非常好的.
我现在无法对此进行测试,但您可能可以通过使用GCEventViewController并将controllerUserInteractionEnabled 属性设置为 false 来区分 Siri Remote 和第三方遥控器。这样,Siri Remote 输入不应传递到 UIKit(当 GCEventViewController 是第一响应者时)。第三方遥控器的输入事件可能会传递到 UIKit,因为与 Siri Remote 不同,它不是 GCMicroGamepad。
到目前为止,Apple 确实不支持使用多个 Siri 遥控器、iOS 遥控器或 IR 遥控器的多人游戏。但我认为它可能会到来,因为iOS 上的 Remote 应用程序很快就会支持多人游戏(所以我猜 Apple TV 将识别多个 GCMicroGamePad 控制器)。
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |