私はObjective-Cでゲームに取り組んでいます。Siri リモートは GCMicroGamepad 経由でうまく機能し、実際の MFi コントローラーは GCGamepad 経由でうまく機能します。ただし、サードパーティの赤外線リモコンはゲーム内ではまったく機能しません (iPhone のリモート アプリや古い Apple TV の第 3 世代リモコンも機能しません)。
これらの入力を認識して区別するにはどうすればよいですか?
2 日後... サードパーティの TV リモコンまたは iPhone Remote.app を提示すると、UITapGestureRecognizer を使用して Up、Down、Left、Right、および Select イベントを正しく検出できることがわかりました。方向イベントは、実際にはこれらのタイプのリモコンにも固有のものです。Siri リモートは方向タップ イベントを生成しません。残念ながら、Siri リモート、サードパーティ、または iPhone Remote.app のいずれかで Select ボタンをタップすると、私のタップ認識エンジンから Select イベントが生成されます。2つを区別する方法が必要です。
私が見つけた唯一の違いは、Siri リモコンをタップするとGCMicroGamepad のボタン A が押されることです。サードパーティのリモコンまたは iPhone Remote.app は、GCMicroGamepad にはまったく影響しません。しかし、GCMicroGamepad でタップ リリース イベントを監視し、そのイベントを使用して一致する Select ボタン イベントを除外するのは非常に洗練されていません。確かに、これは API の推奨される使用方法ではありません。それは良い長期的な解決策のようには思えません。GCMicroGamepad モードのときに Siri リモートに UI イベントの生成を停止するように指示できれば、それはすばらしいことです。