我正在使用 Objective-C 开发游戏。Siri 遥控器通过 GCMicroGamepad 运行良好,真正的 MFi 控制器通过 GCGamepad 运行良好。但是,第三方 IR 遥控器在游戏中根本不起作用(iPhone 上的 Remote App 或较旧的 Apple TV 第 3 代遥控器也不起作用)。
如何识别和区分这些输入?
两天后...我发现当与第三方电视遥控器或 iPhone Remote.app 一起呈现时,UITapGestureRecognizer 可用于正确检测上、下、左、右和选择事件。定向事件实际上也是这些类型的遥控器所独有的——Siri 遥控器不会生成定向轻击事件。然而,不幸的是,点击 Siri 遥控器或第三方或 iPhone Remote.app 上的 Select 按钮将从我的点击识别器生成一个 Select 事件。我需要一些方法来区分这两者。
我能找到的唯一区别因素是,点击 Siri 遥控器也会在 GCMicroGamepad 上生成一个按钮-A 按下——第三方遥控器或 iPhone Remote.app 根本不会影响 GCMicroGamepad。但是尝试观察 GCMicroGamepad 的点击释放事件,然后使用该事件过滤掉匹配的 Select 按钮事件是非常不雅的。当然,不推荐使用 API。这似乎不是一个好的长期解决方案。如果我能告诉 Siri 遥控器在 GCMicroGamepad 模式下停止生成 UI 事件,那就太好了。