このセクションでは、Chrome OS プラットフォーム向けの開発に関する情報を紹介します。一般的には、Unity ユーザーマニュアルに掲載されている Android のドキュメント はすべて Chrome OS にも適用されますが、いくつかの違いや新たに考慮すべき点がありますので、このセクションでご紹介します。
開発環境の準備 については、Google の開発者向けドキュメントに従ってください。デバイスへの接続には、WIFI またはイーサネット経由で Android Debug Bridge (adb) を使用するようにしてください。これにより、Unity がデバイスを検出して接続するのが容易になります。
ビルド設定では、x86 と x86–64 という 2 つの Chrome OS ターゲットが用意されています。Chrome OS デバイスをすべてネイティブにサポートするには、ビルドターゲットにこの 2 つを選択し、さらに既存の ARM オプションも選択します。
代わりに、Android アプリケーションを実行できるデバイスを制限したい場合は、Target Devices Player Setting を使用します。Phones, Tablets, and TV Devices Only に設定すると、電話、タブレット、テレビでのみ実行するようにアプリケーションを制限できます。Chrome OS 上でのみ実行し、他のすべての Android デバイスを避けたい場合は、Chrome OS Devices Only を選択します。
ビルドした APK を Chrome OS デバイスで実行するには、adb で接続する必要があります。
従来の Android のプレイヤー設定に加えて、Chrome OS に特有のプレイヤー設定があります。
Player Setting | 説明 | |
---|---|---|
Target Architectures | どのターゲットアーキテクチャをサポートするかを選択します。すべての Chrome OS デバイスをサポートするには、ビルドターゲットとして以下両方を選択する必要があります。 | |
x86 (Chrome OS) | これは、Chrome OS、32-bit x86 にのみ対応します。 | |
x86–64 (Chrome OS) | これは、Chrome OS、64-bit x86–64 にのみ対応します。 | |
TargetDevices | この設定は、アプリケーションの実行を許可するデバイスを制限するために使用します。 | |
All Devices | 制約はありません。 | |
Phones, Tablets, and TV Devices Only | Android の携帯電話、タブレット、テレビでのみ動作するように制限します。 | |
Chrome OS Devices Only | すべての Android 携帯電話とタブレットを除外し、Chrome OS デバイス上でのみアプリケーションを実行することができます。 | |
Chrome OS Input Emulation | この設定は、すべてのマウスとタッチパッドのイベントをタッチスクリーンのイベントに変換します。この設定は、デフォルトで有効です。 この設定は、Android 向けに開発したアプリケーションを、追加開発なしで Chrome OS でも動作させたい場合に便利です。 デフォルトでは、Chrome OS では、アプリケーションはマウスの位置の更新 (ボタンが押されていない場合) と、マウスまたはタッチパッドのスクロールイベントとボタンの押下の両方を見逃します。 |
マネージデバッガと Unity Profiler に対する Unity アプリケーションの自動検出は、Chrome OS のネットワーク制限のためサポートされていません。どちらも動作しますが、デバイスの IP アドレスを通して手動で接続する必要があります。詳細については、アプリケーションのプロファイリング のドキュメントを参照してください。
Chrome OS にはデスクトップウィンドウ型のユーザーインタフェースがあるため、Android のウィンドウ関連のプレイヤー設定 は Chrome OS では重要です。これらの設定を使用して、アプリケーションを全画面またはウィンドウ内で起動したり、ウィンドウの開始サイズと最小サイズを決定したり、ウィンドウのサイズを変更するかどうかを決定したりすることができます。ウィンドウの動作は、自動回転で許可される方向にも影響されます。
最適なパフォーマンスを得るためには、縦向きか横向きのどちらかを許可する必要がありますが、両方を許可することはできません。また、全画面ではない場合にウィンドウアプリケーションのサイズ変更を許可する必要があります。これは、回転とウィンドウ化にはいくつかの既知の問題があり、これらのモードでのアプリケーションの動作が制限されているためです。
Chrome OS デバイスには、ラップトップ型やタブレット型など、さまざまなフォームファクターがあります。中には、両方のモードをサポートしているデバイスもあります。Chrome OS デバイスの多くはラップトップであるか、ラップトップモードを備えているため、タッチスクリーンベースの標準的な Android アプリケーションに比べて、マウス、タッチパッド、キーボードによる入力が重要になります。
Chrome OS は、エンドユーザーがマウスやタッチパッドを使用している場合でも、デフォルトでタッチスクリーン入力をエミュレートします。つまり、携帯電話やタブレットを想定して開発された Android アプリケーションは、Chrome OS デバイスでデフォルトで使用できるということです。これらの新しい入力デバイスを最大限に活用するには、Player Setting の Chrome OS Input Emulation を無効にする必要があります。このオプションにより、マウスやタッチパッドの入力がそのままアプリケーションに反映されるようになります。つまり、マウス入力やタッチパッド入力を処理するために、Unity の入力コードを書く必要がありますが、その場合は、カーソル位置の読み取り、ボタン押下やタッチパッドのクリックの処理、スクロールイベントの読み取りができる必要があります。
Android と Chrome OS は、カスタムカーソルをサポートしています。これは、他のプラットフォームと同様に動作します。
Unity にはいくつかの UI システムが用意されています。一般的に Android では、入力フィールドやテキストフィールドが選択されていると、常に仮想のオンスクリーンキーボードが表示され、ユーザーがテキストを入力できます。Chrome OS では、ハードウェアキーボードが利用可能な場合は、オンスクリーンキーボードは表示されず、使用されません。Android では、ハードウェアキーボードが利用できない場合は、通常どおりオンスクリーンキーボードが使用されます。注意: アプリケーションでTouchScreenKeyboard を開くように指定されている場合は、Chrome OS でも同様に動作します。
多くの UI ウィジェットは、ユーザーのマウス カーソルがその上に来ると、ハイライト表示されます。Chrome OS では、マウスの位置が確実に報告される場合にのみ動作します。これは、Chrome OS Input Emulation Player Setting が無効になっていることに依存します。
Unity は、ラップトップ、タブレット、ネットブック、デスクトップ型のすべてのブランドの Chrome OS デバイスをサポートします。Chromecast デバイスはサポートされていません。サポートされている Chrome OS のメジャーバージョンは、R89 およびそれ以降の “安定” リリースチャンネルのリリースが最低条件です。他のプラットフォームと同様に、ベータ版や開発版の OS ビルドを自由に使用することができます。