tvOS は iOS の基盤の上に構築されています。tvOS の入力に対応したコンテンツや、より大きなスクリーンでの表示など、新たな課題も生まれています。
tvOS の入力は大きく分けて 2 つあります。
Apple TV Remote (Siri Remote) は、従来のメニューナビゲーションコントローラー、アプリケーションコントローラー、ジャイロスコープ、加速度センサー、タッチジェスチャーデバイスとして動作する多目的入力デバイスです。Unity は Apple TV Remote の入力を対応する Unity API にルーティングしますが、その入力に対して他の処理は行いません。Apple TV Remote の特定の入力機能を活用するために、アプリケーションの入力スキームに調整が必要な場合があります。例えば、アプリケーションはそれを 1 つのアナログ軸と追加のアクションボタンで、伝統的なアプリケーションコントローラーとして扱うことがでます。またはアプリケーションはステアリングのようなインタラクションのために加速度計を使用することができます。アプリケーションを tvOS に移植する際には、様々な方式を試すことができます。
Unity では、iOS と tvOS 向けに標準化されたコントローラーサポートである Made For iOS (MFi) を提供しています。MFi コントローラーは、すぐに使える入力マッピングを提供しており、Edit > Project Settings > Input Manager でカスタムアクションマッピングを設定することができます。詳細については、 ゲームコントローラー入力の処理 と ゲームコントローラ を参照してください。
Apple TV デバイスには、さらに 2 つのワイヤレス MFi コントローラーを接続することで、実質的にコンソールにすることができます。アプリケーションは iOS の MFi コントローラーと同じようにコントローラーを使うことができますが、Apple TV Remote だけで使い勝手を確保する必要があります。tvOSシステムでは、追加コントローラーの数は 2 つに制限されています。
ここでは、特定の TV Remote の機能にアクセスするための技術的な詳細を説明します。
機能 | 説明 |
---|---|
タッチエリア | Input.touches (Touch.type は Indirect に設定され、Unity GUI から無視されます) と Joystick Input API ( 例えば、Input.GetAxis(“Horizontal”)) の両方にマップされます。 |
タッチエリアクリック | A ボタンにマップされ、joystick button 14 にマップされます。 |
ジャイロスコープ | Input.gyro にマップされます。Input.gyro.attitude は重力ベクトルから派生しているため、重力ベクトルに平行な軸を中心に回転しません。同じことが Input.gyro.rotationRate にも当てはまります。 |
加速度 | Input.acceleration にマップされます。ノート: Input.acceleration はジャイロスコープ API から派生しており、不安定な部分があるかもしれません。tvOS SDK には、専用の加速度センサー API はありません。 |
一時停止/再生ボタン | X ボタンにマップされ、joystick button 15 にマップされます。 |
メニューボタン | 長押しすると、tvOS のタスクスイッチャーが呼び出されます。この動作をオーバーライドすることはできません。 アプリケーションは以下の 2 つのうちいずれかの方法で短いタップを処理できます。 a) UnityEngine.tvOS.Remote.allowExitToHome が true の場合、tvOS システムのホーム画面に戻ります。 b) UnityEngine.tvOS.Remote.allowExitToHome が false の場合、タップ (一時停止ボタン/joystick button 0 にマップ) にアプリケーションが反応するようにします。これはデフォルトの動作です。 アプリケーションは、現在の状態に基づいて a) と b) を切り替える必要があります。 - ユーザーが現在トップメニューを操作している場合は、動作 a) を有効にします。 - ユーザーがリアルタイムでアプリケーションを操作している場合は、動作 b) を有効にし、ユーザーがこのボタンを押したときにアプリケーション内の一時停止メニューを呼び出します。 |
リモコンの端までスワイプ | 方向パッド (D パッド) の上下左右のボタン押下を生成します。 マッピングのリストについては、ゲームコントローラーの入力マッピング を参照してください。 |
Apple TV remote の操作モードは、以下の専用の API から制御できます。
ノート: UnityEngine.tvOS.Remote.allowExitToHome が false の場合、Menu (メニュー) ボタンは joystick button 0 にマップされます。これにより、デフォルトの Input ウインドウと競合が発生します。なぜなら、Input ウィンドウも joystick button 0 を使って Submit (送信) 仮想ボタンにマップするためです。この結果、Menu ボタンが UI 要素のアクションを引き起こすことになります。この問題を解決するには、Input ウィンドウの Submit 仮想ボタンとの関連を削除または変更します (メニュー: Edit > Project Settings に移動し、Input カテゴリを選択)。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.