このマニュアルページは、 iOS から tvOS への移植を手助けすることを主眼においています。Apple TV プラットホーム(tvOS)は、 iOS プラットホームの設立時に構想され、ゲーム開発者に新しいパラダイムと挑戦をもたらしました。すでにモバイル用のゲームがあるなら、ワンクリックするだけで tvOS に配信できますが、Unityのインプット制御で正しく動作するようにゲームを改造したり、大きなテレビ画面でプレイされる事を考慮しなければいけなくなる事があります。
tvOS向けの開発には、以下のものが必要です。
otool -l
をつけて実行することで、ビットコードのサイズを見積もる事ができます。Apple TV Remote (Siri Remote) は、古典的なメニューによる操作、ゲームコントローラー、ジャイロと加速度センサー、タッチジェスチャーデバイス等で使う事ができる、多目的の入力デバイスです。 TV Remote での入力は、 Unity で最小限の処理が行われ、大抵は Unity の API と連携します。
一般的に、どんなゲームでも Apple TV Remote の独特な入力機能を効果的に使うため、入力方法に多少の調整が必要になります。あるゲームでは、アナログスティックと複数のアクションボタンを持つ古典的なゲームコントローラーのように扱うのが一番効果的かもしれません。中には、加速度センサーをステアリングに使うのがよいゲームもあるでしょう。 tvOS にゲームを配信するときには、いくつかの方法を試してみた方がよいです。
特定の TV Remote の各機能にアクセスする方法を技術的に説明します。
Input.touches
(Touch.type
は Indirect
に設定され、 Unity GUI からは無視されます) と、 Input.GetAxis("Horizontal");
などのジョイスティック入力の API 両方にマップされます。Input.acceleration
と Input.gyro
にマップされます。 Input.acceleration
は内部的にはジャイロの API から提供されているので、やや不安定かもしれません。残念ながら tvOS SDK には、加速度専用の API はありません。 Input.gyro.attitude
は重力ベクトルを元にしており、そのため、重力ベクトルと平行な軸周りの回転はありません。 Input.gyro.rotationRate
も同様です。UnityEngine.Apple.TV.Remote.allowExitToHome
が true の場合)UnityEngine.Apple.TV.Remote.allowExitToHome
が false のときに、アプリをタップに反応させます (“Pause” / joystick button 0) にマップされます)。これがデフォルトの挙動となります。UnityEngine.Apple.TV.Remote.allowExitToHome
UnityEngine.Apple.TV.Remote.allowRemoteRotation
UnityEngine.Apple.TV.Remote.reportAbsoluteDpadValues
UnityEngine.Apple.TV.Remote.touchesEnabled
注意 UnityEngine.Apple.TV.Remote.allowExitToHome
が false に設定され、デフォルト入力マネージャーが “Submit” のバーチャルボタンを joystick button 0 にまとめている場合、“Menu” ボタンも同じく joystick button 0 とされているため、“Menu” ボタンを押すと、UI エレメント上でアクションをトリガーします。 この問題を回避するには、input managerで “Submit” バーチャルボタンバインディングを削除するか、変更する必要があります。
Unity エディターで Project の Input Manager を開きます。 virtual input の項目である最初の “Submit” を選択し、展開して “Alt Positive Button” を “joystick button 14” に変更します。
シーン内で EventSystem ゲームオブジェクトを選択します。インスペクターで、EventSystem コンポーネントを見つけ、“First Selected” フィールドに最初にフォーカスを得る UI ゲームオブジェクトを入力します。“Standalone Input Module” コンポーネントでは “Force input module” フラグをチェックする必要があるかもしれません。
すべてが正しく行われると、エディター実行中であれば UI をキーボードから操作できるようになり、デバイス実行中には TV Remote のスワイプとクリックで UI を操作できるようになります。
注意: TV Remote による操作は、 TV Simulator では機能しません。
ゲームセンターでは、ネイティブのリーダーボードの UI に提供するカスタムビジュアルリソースが必要です。ここでは、 Xcode にリソースを追加する方法を簡単に説明します。
tvOS は、アプリケーションが予約できるディスクスペースを厳密に要求します。メインのアプリケーションをインストールするバンドルサイズは 200MB を超える事ができません。と言っても、ダウンロード可能な追加コンテンツの限界値は、もっと多いです(使用中のアセットで 2GB まで、ダウンロード可能なコンテンツ全体で 20GB まで)。アップルは、tvOS のダウンロード可能なコンテンツに、オンデマンドリソース (ODR) を使用することを推奨しています。それにより tvOS 向けにディスクスペース管理が最適化されます。 Unity はアセットバンドルで ODR をサポートしています。 ODR 実現のためのガイドは、専用ページ blogpost にあります。