Unity で Android アプリケーションの開発を始めるにあたっては、Android に関わる Unity の要件と互換性についての情報を参照し、同プラットフォーム用の Unity アプリケーション開発に関する制約事項を確認してください。
Unity は Android 6.0 “Marshmallow” (API level 23) 以上をサポートしています。詳細については、AndroidSdkVersions を参照してください。
Android デバイスは Vulkan および OpenGL ES をサポートしています。このセクションでは、Unity が Android でサポートするグラフィックス API に関する情報を提供しています。
| グラフィックス API | サポート |
|---|---|
| Vulkan | はい |
| OpenGL ES 1.0 | いいえ |
| OpenGL ES 1.1 | いいえ |
| OpenGL ES 2.0 | いいえ |
| OpenGL ES 3.0 | はい |
| OpenGL ES 3.1 | はい |
| OpenGL ES 3.2 | はい |
一部、ハードウェアやグラフィックス 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 つの方法で変更できます。
Build Settings で設定した値は、Player Settings で設定した値よりも優先されます。特定のビルドのテクスチャ圧縮形式を変更する場合に使用してください。
個々のテクスチャのテクスチャ圧縮形式をカスタマイズすることも可能です。個々のテクスチャに設定した値は、デフォルトのテクスチャ圧縮形式の値をオーバーライドします。個々のテクスチャのテクスチャ形式を変更する方法については、テクスチャのインポート設定 を参照してください。
このセクションには、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 からは見ることができず、多くの場合、互換性の問題が何であるかを説明しています。