2016-02-29 77 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控制器)。