在开始在 Unity 中开发 Android 应用程序之前,请查看 Unity 对 Android 的要求和兼容性信息,以确保了解为此平台开发 Unity 应用程序的任何限制。
Unity 支持 Android 6.0“Marshmallow”(API 级别 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 兼容。
| 功能 | 内置渲染管线 | Universal Render Pipeline | 高清渲染管线 | 自定义可编程渲染管线 |
|---|---|---|---|---|
| Android | 是 | 是 | 否 | 是 |
本节包含有关 Android 应用程序清单元素属性的兼容性信息。
singleTask launchMode。Unity 不支持 Android 模拟器。要测试应用程序,您可以:
Android 上的标准纹理压缩格式为 Ericsson 纹理压缩 (ETC) 和可适应可扩展纹理压缩 (ASTC)。要用于大多数版本的 Android 设备,请使用这些纹理压缩格式之一。Unity 的默认纹理压缩格式为 ASTC。如果 Android 设备不支持用于纹理的纹理压缩格式,Unity 会在运行时解压缩纹理。这会增加内存使用量并降低渲染速度。
Android 设备的子集支持 DXT 和 PVRTC 纹理压缩格式。这些格式支持具有 Alpha 通道以及高压缩率或高图像质量的纹理。对于根据纹理压缩格式过滤内容的数字分发服务,最佳做法是为每种纹理压缩格式创建单独的应用程序构建。
有两种方法可以更改应用程序的默认纹理压缩格式:
在构建设置中设置的值优先于在播放器设置中设置的值。用于更改特定构建的纹理压缩格式。
还可以自定义单个纹理的纹理压缩格式。为单个纹理设置的值会覆盖默认纹理压缩格式值。有关如何更改单个纹理的纹理格式的信息,请参阅纹理导入器。
本节提供了在 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 上显示,但通常可以解释所存在的兼容性问题。