2016-02-29 78 views
7

我正在Objective-C游戏中工作。 Siri遥控器通过GCMicroGamepad很好地工作,真正的MFi控制器可以通过GCGamepad很好地工作。但是,第三方红外遥控器在游戏中根本不起作用(iPhone上的远程应用程序或较旧的Apple TV第三代遥控器也不起作用)。tvOS - 通过非Siri遥控器的游戏控制

如何识别并区分这些输入?


两天后......我发现一个UITapGestureRecognizer可以用来检测上,下,左,右和选择正确的事件时有第三方的电视机遥控器或iPhone Remote.app呈现。定向事件对于这些类型的遥控器来说实际上是独一无二的 - Siri遥控器不会产生定向轻敲事件。然而不幸的是,点击Siri遥控器或第三方或iPhone Remote.app上的选择按钮将从我的分接头识别器中产生一个选择事件。我需要一些方法来区分这两者。

我能找到的唯一的特点在于叩击Siri的远程的GCMicroGamepad-第三方遥控器上生成一个按钮-A按或iPhone Remote.app不影响GCMicroGamepad可言。但是,尝试观看GCMicroGamepad以获取点击发布事件非常不雅观,然后使用该事件筛选出匹配的选择按钮事件。当然,这不是推荐使用的API;它似乎不是一个好的长期解决方案。如果我可以告诉Siri遥控器在GCMicroGamepad模式下停止生成UI事件,那将非常好。

+0

您是否检查过技术讲座视频:https://developer.apple.com/videos/play/techtalks-apple-tv/4/ – Stefan

+0

这样的讨论是否讨论了remote.app?我不记得那个。 – StilesCrisis

+0

不,只有Siri遥控器和游戏控制器。对不起,我错过了你的问题中的那一部分。 – Stefan

回答

0

我现在无法测试此功能,但您可能可以通过使用GCEventViewController将controllerUserInteractionEnabled属性设置为false,将Siri Remote与第三方远程设备区分开来。这样,Siri Remote输入不应该传递给UIKit(当GCEventViewController是第一响应者时)。第三方远程的输入事件可能会通过UIKit,因为与Siri Remote不同,它不是GCMicroGamepad。

到目前为止,苹果公司并不支持多个Siri遥控器,iOS遥控器或红外遥控器的多人游戏。但我想这可能是因为the Remote app on iOS will soon support multiplayer gaming(所以我猜Apple TV会识别多个GCMicroGamePad控制器)。