Unity で Android アプリケーションの開発を始めるにあたっては、Android に関わる Unity の要件と互換性についての情報を参照し、同プラットフォーム用の Unity アプリケーション開発に関する制約事項を確認してください。
Unity は Android 5.1 “Lollipop” (API level 22) 以上をサポートしています。詳細は AndroidSdkVersions を参照してください。
Android デバイスは Vulkan と OpenGL ES をサポートしています。このセクションでは、Unity が Android でサポートするグラフィックス API に関する情報を提供しています。
グラフィックス API | サポート |
---|---|
Vulkan | あり |
OpenGL ES 1.0 | なし |
OpenGL ES 1.1 | なし |
OpenGL ES 2.0 | あり (1) |
OpenGL ES 3.0 | あり |
OpenGL ES 3.1 | あり |
OpenGL ES 3.2 | あり |
ノート:
デフォルトでは、Unity ビルトインの Android 用グラフィックス API のセットには、OpenGL ES 2.0 は含まれていません。OpenGL ES 2.0 のサポートの追加は、以下の手順で行えます。
Auto Graphics API を使用している古いプロジェクトを、デフォルトで OpenGL ES 2.0 を含まない Unity バージョンにアップグレードした場合、Unity は Auto Graphics API を無効化し、OpenGL ES 2.0 をリストに追加します。
一部、ハードウェアやグラフィックス API の制約により、Android との互換性がない レンダーパイプライン もあります。
機能 | ビルトインレンダーパイプライン | ユニバーサルレンダーパイプライン | HD レンダーパイプライン | カスタムスクリプタブルレンダーパイプライン |
---|---|---|---|---|
Android | あり | あり | なし | あり |
このセクションには、Android アプリマニフェスト要素 の属性の、互換性についての情報が掲載されています。
singleTask
launchMode のみをサポートしています。Unity は Android エミュレーターをサポートしていません。アプリケーションのテストは、以下の方法で行えます。
Android の標準的なテクスチャ圧縮形式は Ericsson Texture Compression (ETC) と Adaptable Scalable Texture Compression (ASTC) です。最も幅広い種類の Android デバイスをターゲットにするには、これらのテクスチャ圧縮フォーマットのいずれかを使用してください。Unity デフォルトのテクスチャ圧縮形式は ASTC です。テクスチャに使用したテクスチャ圧縮形式が Android デバイスでサポートされていない場合、Unity は、ランタイムでそのテクスチャを解凍します。これは、メモリ使用量を増加させ、レンダリング速度を低下させます。
Android デバイスのサブセットは、DXT および PVRTC テクスチャ圧縮形式をサポートします。これらの形式は、アルファチャンネルを持つテクスチャや、高圧縮率、高画質をサポートします。テクスチャ圧縮形式に基づいてコンテンツをフィルタリングするデジタル配信サービス向けには、テクスチャ圧縮形式ごとにアプリケーションのビルドを作成するのが効率的です。
アプリケーションのデフォルトのテクスチャ圧縮形式は、以下の 2 つの方法で変更できます。
ビルド設定で設定した値は、Player 設定で設定した値よりも優先されます。特定のビルドのテクスチャ圧縮形式を変更する場合に使用してください。
個々のテクスチャのテクスチャ圧縮形式をカスタマイズすることも可能です。個々のテクスチャに設定した値は、デフォルトのテクスチャ圧縮形式の値をオーバーライドします。個々のテクスチャのテクスチャ形式を変更する方法については、テクスチャのインポート設定 を参照してください。
このセクションには、Android でのビデオファイルの再生に関する追加情報を掲載しています。
Android でビデオファイルを再生するには、Video Player コンポーネントを使用してください。アプリケーションがデバイスのサポートしていないビデオファイルを再生しようとした場合、Unity はビデオを再生しません。
ターゲットデバイスがサポートしている範囲内であれば、使用できる解像度やオーディオチャンネル数に制限はありません。ノート: 640 × 360 を超える解像度はサポートしていないデバイスもあります。
Unity は非圧縮アセットバンドルからの再生をサポートしています。Android Pie 以上の場合、Unity は圧縮アセットバンドルからの再生をサポートします。
Unity はネイティブの webM/VP8 の透明度をサポートしていません。VP8 でエンコードされた透明度を持つ webM クリップを再生するには、サポートされている形式にクリップをトランスコードする必要があります。
6.0.1
より前のバージョンの Android では、透明度を持つ、解像度がデバイスのサポート解像度より高いビデオの場合に、サポート解像度を超えるピクセルが白としてレンダリングされます。
Unity は adb logcat
出力内で形式の互換性の問題をレポートし、それにプレフィックス AndroidVideoMedia
を付加します。このファイルは、Unity がレポートするビデオ形式関連の問題の近くに、デバイス固有の他のエラーメッセージを表示する場合があります。こうしたデバイス固有のエラーは Unity からは不可視で、多くの場合、互換性の問題が何であるかを説明しています。