Version: 2020.3
言語: 日本語
Android でクラッシュしたときのバグレポート方法
Windows

Chrome OS

このセクションでは、Chrome OS プラットフォーム向けの開発に関する情報を紹介します。一般的には、Unity ユーザーマニュアルに掲載されている Android のドキュメント はすべて Chrome OS にも適用されますが、いくつかの違いや新たに考慮すべき点がありますので、このセクションでご紹介します。

Chrome OS デバイスの設定

開発環境の準備 については、Google の開発者向けドキュメントに従ってください。デバイスへの接続には、WIFI またはイーサネット経由で Android Debug Bridge (adb) を使用するようにしてください。これにより、Unity がデバイスを検出して接続するのが容易になります。

Chrome OS のためのビルド

ビルド設定では、x86x86–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 で接続する必要があります。

Player Settings

従来の 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 プロファイラーとマネージデバッガの使用

マネージデバッガと 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 は、カスタムカーソルをサポートしています。これは、他のプラットフォームと同様に動作します。

UI とタッチスクリーンキーボード

Unity にはいくつかの UI システムが用意されています。一般的に Android では、入力フィールドやテキストフィールドが選択されていると、常に仮想のオンスクリーンキーボードが表示され、ユーザーがテキストを入力できます。Chrome OS では、ハードウェアキーボードが利用可能な場合は、オンスクリーンキーボードは表示されず、使用されません。Android では、ハードウェアキーボードが利用できない場合は、通常どおりオンスクリーンキーボードが使用されます。注意: アプリケーションでTouchScreenKeyboard を開くように指定されている場合は、Chrome OS でも同様に動作します。

多くの UI ウィジェットは、ユーザーのマウス カーソルがその上に来ると、ハイライト表示されます。Chrome OS では、マウスの位置が確実に報告される場合にのみ動作します。これは、Chrome OS Input Emulation Player Setting が無効になっていることに依存します。

対応 CPU とデバイス

Unity は、ラップトップ、タブレット、ネットブック、デスクトップ型のすべてのブランドの Chrome OS デバイスをサポートします。Chromecast デバイスはサポートされていません。サポートされている Chrome OS のメジャーバージョンは、R89 およびそれ以降の “安定” リリースチャンネルのリリースが最低条件です。他のプラットフォームと同様に、ベータ版や開発版の OS ビルドを自由に使用することができます。

既知の問題点

  • x86 および x86_64 アーキテクチャは、Chrome OS デバイスでの実行のみがサポートされており、インテル製プロセッサーを搭載したその他の Android デバイスではサポートされていません。
  • Project Tiny は、Chrome OS x86 および x86–64 デバイスではネイティブに動作しません。
  • Unity Physics パッケージのうち、Havok Physics は Chrome OS ではサポートされていません。
  • スクリプトのデバッグとプロファイリングは、WIFI またはイーサネットでのみサポートされます。
  • スクリプトのみのビルドには対応していません。
  • Android Studio でのプロファイリングやデバッグは、対象となるデバイスが Developer Mode である場合にのみ機能します。詳細については、Chromium のドキュメント を参照してください。
  • 全方位への自動回転をサポートしているアプリケーションには、回転すべきでないときに回転したり、誤った解像度に設定されたりするなど、いくつかのバグがあります。
  • クラムシェルモードとタブレットモードの両方を備えた Chrome OS デバイスでは、サイズ変更不可のウィンドウが正しく動作しません。タブレットモードになると、アプリケーションは全画面表示になり、クラムシェルモードに戻っても元のサイズに戻らなくなります。
  • Chrome OS は、Unity エディターによってサポートされているプラットフォームではありません。
  • x86 と x86_64 は Mono をサポートしていません。IL2CPP のみです。
  • Unity のビデオプレイヤーを使用している場合、Chrome OS デバイスでは H.265 ビデオはサポートされていません。H.264 が適しています。
Android でクラッシュしたときのバグレポート方法
Windows