版本:Unity 6 (6000.0)
语言:English
Android 环境设置
Android 密钥库

Android 播放器设置

此页面详细介绍了 Android 平台的播放器设置。有关常规播放器设置的说明,请参阅 播放器设置允许您为 Unity 生成的最终游戏设置各种特定于播放器的选项的设置。 更多信息
请参阅 词汇表

Player Settings for Android.
Android 的播放器设置。

属性的文档根据其在播放器 UI(用户界面) 允许用户与您的应用程序交互。Unity 目前支持三种 UI 系统。 更多信息
请参阅 词汇表
中各自的部分进行分组。

图标

使用图标部分指定图标来表示设备上的应用程序。

Icon settings for Android.
Android 的图标设置。
设置 描述
自适应 指定各种尺寸的纹理,以在运行 Android 8.0(API 级别 26)或更高版本的设备上表示您的应用程序。
圆形 指定各种尺寸的纹理,以在运行 Android 7.1(API 级别 25)或更高版本的设备上表示您的应用程序。
旧版 指定各种尺寸的纹理,以在运行低于 Android 7.1(API 级别 25)版本的设备上表示您的应用程序。

分辨率和显示

分辨率和显示部分使用以下设置来自定义屏幕外观的各个方面。

分辨率

使用分辨率部分来自定义屏幕模式和默认大小。

设置 描述
运行时不失去焦点 启用此属性可使您的应用程序即使在失去焦点但可见时也能继续运行,例如在支持分屏模式的设备上。禁用后,应用程序会暂停但仍然可见。
全屏模式 指定窗口在设备上的显示方式。这会设置启动时的默认窗口模式。
全屏窗口 应用程序窗口填充设备的全屏原生分辨率。为了填充全屏窗口,Unity 会缩放应用程序内容。分辨率缩放模式控制 Unity 如何缩放内容。在此模式下,导航栏始终隐藏。
窗口化 应用程序使用标准的非全屏可移动窗口。窗口的大小取决于应用程序的分辨率。在此模式下,应用程序默认情况下是可调整大小的。要防止应用程序调整大小,请禁用可调整大小的 Activity
可调整大小的 Activity 指示用户是否可以调整应用程序的大小。
此设置在 Android 手机和平板电脑上的应用程序中启用多窗口功能。有关更多信息,请参阅Google 的开发者文档
默认窗口宽度 应用程序窗口的默认宽度,以像素计算机图像中最小的单位。像素大小取决于您的屏幕分辨率。像素照明在每个屏幕像素处计算。 更多信息
请参阅 词汇表
为单位。此选项仅在全屏模式设置为窗口化时可用。
默认窗口高度 应用程序窗口的默认高度,以像素为单位。此选项仅在全屏模式设置为窗口化时可用。
最小窗口宽度 应用程序窗口的最小宽度,以像素为单位。此选项仅在全屏模式设置为窗口化时可用。
最小窗口高度 应用程序窗口的最小高度,以像素为单位。此选项仅在全屏模式设置为窗口化时可用。
隐藏导航栏 指示是否隐藏出现在窗口顶部的导航栏。
在安全区域之外渲染 启用此选项以允许应用程序使用所有可用的屏幕空间进行渲染,包括被切掉(缺口)的显示区域。有关更多信息,请参阅 Android 的显示切口支持文档。此设置的行为因 Android 版本而异,如下表所述。
Android 15 及更高版本 此设置无效,因为应用程序默认情况下使用整个屏幕空间。有关更多信息,请参阅Android 文档
Android 11 到 14 启用后,应用程序将使用所有可用的屏幕空间。禁用后,应用程序仅在系统栏(设备顶部或底部)内使用切口周围的空间,否则应用程序会在切口区域上显示黑色条。有关应用程序何时使用切口周围空间的更多信息,请参阅Android 文档
Android 10 及更低版本 启用后,应用程序将使用设备较短边(例如顶部或底部)上切口周围的屏幕空间。但是,应用程序会使用黑色条阻止设备较长边(例如侧面)上的切口。有关应用程序如何在较短边上使用切口周围空间的更多信息,请参阅Android 文档。禁用后,应用程序仅在系统栏内使用切口周围的空间,否则应用程序会在切口区域上显示黑色条。有关应用程序何时使用切口周围空间的更多信息,请参阅Android 文档
优化帧速率 启用此选项以允许 Unity 均匀分配帧,以减少帧速率的变化并创造更流畅的体验。

分辨率缩放

使用分辨率缩放部分来自定义与屏幕分辨率缩放相关的设置。使用低于设备原生分辨率的分辨率可以提高性能并延长电池寿命。

设置 描述
分辨率缩放模式 指定应用程序是否以及如何缩放其分辨率。您可以将缩放设置为等于或低于原生屏幕分辨率。使用较低的分辨率可以提高性能并延长电池寿命。
禁用 不应用分辨率缩放,并且应用程序会渲染到设备的原生屏幕分辨率。
固定 DPI 使用目标 DPI 应用分辨率缩放。使用此方法可以优化性能和电池寿命,或针对特定的 DPI 设置。
带黑边的 在渲染输出中添加黑条,以使内容不会拉伸。此过程称为Letterboxing
目标 DPI 应用程序的分辨率。如果设备的原生屏幕 DPI 高于此值,则 Unity 会向下缩放应用程序的分辨率以匹配此设置。Unity 使用以下公式计算比例:min(Target DPI * Factor / Screen DPI, 1),其中Factor 是来自质量设置分辨率缩放固定 DPI 系数

注意:此选项仅在将分辨率缩放模式设置为固定 DPI时显示。
窗口大小改变时重置分辨率 指示当原生窗口大小发生变化时是否将屏幕分辨率设置为新的原生窗口大小。如果将分辨率缩放模式设置为固定 DPI,则 Unity 会根据固定 DPI属性重新计算分辨率。
Blit“位块传输”的简称。Blit 操作是从内存中的一个位置到另一个位置传输数据块的过程。
请参阅 词汇表
类型
控制是否使用 Blit 将最终图像渲染到屏幕上。使用 Blit 与大多数设备兼容,但通常比不使用 Blit 慢。
总是 Unity 渲染到屏幕外缓冲区,然后使用 Blit 将缓冲区内容复制到设备的帧缓冲区。这与大多数设备兼容,但通常比不使用 Blit 慢。
从不 Unity 渲染到设备操作系统提供的帧缓冲区。如果失败,应用程序会将一次性警告打印到设备日志。这通常比使用 Blit 快,但它不兼容所有设备。
自动 如果可能,Unity 会渲染到设备操作系统提供的帧缓冲区。如果失败,Unity 会将警告打印到设备控制台并使用 Blit 将最终图像渲染到屏幕上。

支持的纵横比

使用支持的纵横比图像比例尺寸的关系,例如其宽度和高度。
请参阅 词汇表
部分来自定义与支持哪些设备纵横比相关的设置。

设置 描述
纵横比模式 指定应用程序支持的最大纵横比。如果设备的纵横比大于此纵横比,则 Unity 会将此纵横比用于应用程序并添加黑条,以使应用程序不会拉伸。
旧版宽屏 (1.86) 应用程序支持高达 Android 旧版宽屏纵横比的纵横比。
原生纵横比 应用程序支持高达 Android 原生纵横比的纵横比。
自定义 应用程序支持高达您在最大值中设置的纵横比的纵横比。
最小值 自定义最小纵横比。此值必须小于最大值

注意:此设置仅在将纵横比模式设置为自定义时显示。
最大值 自定义最大纵横比。此值必须大于最小值

注意:此设置仅在将纵横比模式设置为自定义时显示。

其他

设置 描述
显示加载指示器 指定加载指示器是否以及如何显示。
不显示 加载指示器不显示。
显示一个大型加载指示器。
反色大 显示一个大型加载指示器,颜色反色。
显示一个小型的加载指示器。
反色小 显示一个小型的加载指示器,颜色反色。

方向

属性 描述
默认方向 指定应用程序窗口在设备屏幕内的方向。

注意:Unity 在 Android、iOS 和 UWP 之间共享您为此设置设置的值。
纵向 纵向方向,其中应用程序的底部与屏幕底部对齐。
倒置纵向 纵向方向,其中应用程序的底部与屏幕顶部对齐。
横向右侧 横向方向,其中应用程序的右侧与屏幕顶部对齐。
横向左侧 横向方向,其中应用程序的左侧与屏幕顶部对齐。
自动旋转 屏幕可以旋转到您在自动旋转允许的方向部分中指定的任何方向。
自动旋转行为 指定当默认方向设置为自动旋转时,应用程序窗口如何根据设备的旋转传感器和方向设置调整其方向。



注意:仅当您将默认方向设置为自动旋转时,此属性才可见。默认情况下,此属性设置为用户
用户 应用程序窗口根据设备的方向设置调整其方向。如果用户锁定设备的自动旋转方向设置,则应用程序窗口不会遵循自动旋转允许的方向部分中设置的偏好。仅当用户关闭设备的自动旋转方向设置时,应用程序窗口才会根据设置的偏好旋转。
传感器 无论设备的方向设置如何,应用程序窗口都会根据设备的旋转传感器调整其方向。但是,应用程序窗口仅根据自动旋转允许的方向部分中设置的偏好旋转。

自动旋转允许的方向

当您将默认方向设置为自动旋转时,使用自动旋转允许的方向部分指定应用程序支持的方向。例如,这对于将应用程序锁定到横向方向但允许用户在横向左侧和横向右侧之间切换很有用。

注意:仅当您在方向部分中将默认方向设置为自动旋转时,此部分才可见。

属性 描述
纵向 允许纵向方向,应用程序底部与屏幕底部对齐。
倒置纵向 允许纵向方向,应用程序底部与屏幕顶部对齐。
横向右侧 允许横向方向,应用程序右侧与屏幕顶部对齐。
横向左侧 允许横向方向,应用程序左侧与屏幕顶部对齐。

其他分辨率和呈现设置

属性 描述
使用 32 位显示缓冲区 指示显示缓冲区是否保存 32 位颜色值而不是 16 位颜色值。如果您看到色带或在后期处理效果中需要 alpha 值,请启用此设置。某些后期处理效果需要此设置,因为它们会创建与显示缓冲区格式相同的渲染纹理一种在运行时创建和更新的特殊纹理类型。要使用它们,首先创建一个新的渲染纹理,并指定您的其中一个摄像机渲染到其中。然后,您可以像使用普通纹理一样在材质中使用渲染纹理。 更多信息
参见术语表
禁用深度和模板 禁用深度和模板缓冲区。
在原生 UI 上渲染 强制您的应用程序在原生 UI 上方渲染。要使此设置生效,请将摄像机的清除标志设置为使用 alpha 值小于 1 的纯色。

启动画面

使用虚拟现实启动画面图像设置选择虚拟现实虚拟现实 (VR) 使用头显和动作跟踪,将用户沉浸在一个由逼真的图像和声音组成的虚拟 3D 世界中。 更多信息
参见术语表
显示的自定义启动画面图像。有关常见启动画面设置的信息,请参阅启动画面

Splash screen settings for virtual reality.
虚拟现实的启动画面设置。

在常见的启动画面设置下方,您可以设置特定于 Android 的静态启动画面图像

Splash screen settings for Android.
Android 的启动画面设置。
设置 描述
图像 指定应用程序用于 Android 启动画面的纹理。启动画面图像的标准尺寸为 320x480。
缩放 指定如何缩放启动画面图像以适应设备的屏幕。
居中(仅缩小) 以其原生大小绘制图像,除非它太大,在这种情况下,Unity 会缩小图像以适应。
缩放以适应(带黑边) 缩放图像,使较长的一维完全适合屏幕尺寸。Unity 使用黑色填充较短一维周围的空白区域。
缩放以填充(裁剪) 缩放图像,使较短的一维完全适合屏幕尺寸。Unity 会裁剪较长一维的图像。

其他设置

此部分允许您自定义一系列组织到以下组中的选项

渲染

使用这些设置自定义 Unity 如何为 Android 平台渲染您的游戏。

属性 描述
颜色空间 选择用于渲染的颜色空间。有关更多信息,请参阅线性渲染概述
伽马 伽马颜色空间通常用于计算旧硬件上的光照,这些硬件限制为每个通道 8 位用于帧缓冲区格式。即使今天的显示器是数字的,它们也可能仍然将伽马编码信号作为输入。
线性 线性颜色空间渲染提供更精确的结果。当您选择在线性颜色空间中工作时,编辑器默认为使用sRGB采样。如果您的纹理位于线性颜色空间中,则需要在线性颜色空间中工作并为每个纹理停用 sRGB 采样。
自动图形 API 禁用此选项以手动选择和重新排序图形 API。默认情况下,此选项已启用,并且 Unity 会尝试使用 Vulkan。如果设备不支持 Vulkan,则 Unity 会回退到 GLES3.2、GLES3.1 或 GLES3.0。

重要提示:仅当您启用自动图形 API图形 API包含OpenGLES3时,Unity 才会将 GLES3.1/GLES3.1+AEP/GLES3.2 要求添加到您的 Android 应用清单中。
图形 API 指定应用程序支持的图形 API。Unity 会首先尝试使用列表顶部的图形 API,如果设备不支持该 API,则 Unity 会回退到列表中的下一个图形 API。

注意:仅当自动图形 API 设置为 false 时,此属性才可见。
Vulkan 将 Vulkan 添加为目标 API。
OpenGLES3 将 OpenGLES 3 添加为目标 API。
需要 ES3.1 指示是否要求最小 OpenGL ES 3 次要版本为 3.1。
仅当您启用自动图形 API图形 API包含OpenGLES3时,此属性才可见。
需要 ES3.1+AEP 指示是否要求最小 OpenGL ES 3 次要版本为 3.1+AEP。
仅当您启用自动图形 API图形 API包含OpenGLES3时,此属性才可见。
需要 ES3.2 指示是否要求最小 OpenGL ES 3 次要版本为 3.2。
仅当您启用自动图形 API图形 API包含OpenGLES3时,此属性才可见。
色域 您可以添加或删除用于渲染的色域。单击加号 (+) 图标以查看可用色域的列表。色域定义了给定设备(如显示器或屏幕)可用的颜色范围。sRGB 色域是默认(且必需)色域。
多线程渲染 启用此选项可将图形 API 调用从 Unity 的主线程移动到单独的工作线程。这有助于提高在主线程上 CPU 使用率高的应用程序的性能。
静态批处理 启用此选项可使用静态批处理Unity 用于在屏幕上绘制游戏对象的技巧,该技巧将静态(非移动)游戏对象组合成大型网格,并以更快的速度渲染它们。 更多信息
参见术语表
动态批处理 在您的构建中使用动态批处理一个自动的 Unity 过程,它尝试将多个网格渲染为单个网格,以优化图形性能。该技术在 CPU 上转换所有游戏对象的顶点,并将许多相似的顶点组合在一起。 更多信息
参见术语表
(默认启用)。

注意:可脚本化渲染管线处于活动状态时,动态批处理无效,因此仅当可脚本化渲染管线资源图形设置为空白时,此设置才可见。
精灵批处理阈值 控制批处理时使用的最大顶点阈值。
GPU蒙皮 通过着色器在 GPU 上计算网格蒙皮和混合形状,以释放 CPU 资源并提高性能。
GPU 选择此选项以在 GPU 上执行网格蒙皮和混合形状计算。
CPU 选择此选项以在 CPU 上执行网格蒙皮和混合形状计算。
GPU(批处理) 选择此选项以使用批处理和重新排序在 GPU 上执行网格蒙皮和混合形状计算。批处理减少了对 GPU 的调度调用次数,可以提高性能。
图形作业(实验性) 启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 内核上运行的工作线程。这旨在减少在主线程上花费在Camera.Render中的时间,这通常是一个瓶颈。

注意:此功能处于实验阶段。它可能无法提高项目的性能,并且可能会导致新的崩溃。
图形作业模式 指定要在应用程序中使用的图形作业模式。有关 Unity 中作业的信息,请参阅作业系统概述

注意:仅当启用图形作业并将图形 API设置为 Vulkan 时,此选项才可用。
原生 主线程为工作线程写入 Unity 图形命令。工作线程将命令写入任务执行器,渲染线程使用该执行器。
旧版 主线程为工作线程写入 Unity 图形命令。工作线程将命令直接写入渲染线程。渲染线程读取 Unity 图形命令并将其转换为原生图形命令。
分割 主线程为工作线程写入 Unity 图形命令。渲染线程读取 Unity 图形命令并将其转换为原生图形命令。然后,渲染线程启动工作线程来写入原生图形命令。
纹理压缩格式 在 ASTC、ETC2 和 ETC(ETC1 用于 RGB,ETC2 用于 RGBA)、DXTC 和 DXT + RGTC(BC4、BC5) 之间进行选择。有关如何选择正确格式的更多信息,请参阅纹理压缩格式概述。可以将多个纹理压缩格式添加到此列表中以获得纹理压缩目标支持,但是您不能同时在此列表中同时使用 DXT 和 DXT + RGTC(BC4、BC5)。如果您启用了纹理压缩目标,Unity 还会启用拆分应用程序二进制文件
有关这如何与构建设置中的纹理压缩设置交互的更多详细信息,请参阅纹理压缩设置

注意:如果您将应用程序导出或构建为 APK,则 Unity 仅使用此列表中的第一个纹理压缩格式。
法线贴图编码

选择**XYZ**或**DXT5nm-style**来设置法线贴图编码。此设置会影响法线贴图使用的编码方案和压缩格式。**DXT5nm-style**法线贴图质量更高,但在着色器中解码成本更高。
光照贴图编码 定义光照贴图的编码方案和压缩格式。
您可以选择**低质量**、**普通质量**或**高质量**。
HDR立方体贴图编码 定义HDR立方体贴图的编码方案和压缩格式。
您可以选择**低质量**、**普通质量**或**高质量**。有关更多信息,请参阅光照贴图:技术信息
光照贴图流式传输 启用此选项以对光照贴图使用Mipmap流式传输。Unity在生成光照贴图时会将此设置应用于所有光照贴图。
注意:要使用此设置,必须启用纹理Mipmap流式传输质量设置。
流式传输优先级 设置Mipmap流式传输系统中所有光照贴图的优先级。Unity在生成光照贴图时会将此设置应用于所有光照贴图。
正数表示更高的优先级。有效值范围为-128127
帧时序统计 启用此选项以收集CPU/GPU帧时序统计信息。
OpenGL:探查器GPU记录器 指示在使用OpenGL渲染时是否启用探查器记录器。对于其他渲染API,此选项始终启用,但在OpenGL上是可选的,因为可能与帧时序统计和GPU探查器存在兼容性问题。
允许HDR显示输出 应用程序运行时启用HDR模式输出。这仅适用于支持此功能的显示器。如果显示器不支持HDR模式,则游戏将以标准模式运行。
使用HDR显示输出 检查主显示器是否支持HDR,如果支持,则在应用程序启动时切换到HDR输出。

注意:此选项仅在激活**允许HDR显示输出**时可用。
虚拟纹理(实验性) 指示是否启用虚拟纹理

注意:虚拟纹理与Android不兼容。
360立体声捕捉 指示Unity是否可以捕捉立体声360图像和视频。

注意:360立体声捕捉与Android不兼容。
加载/存储操作调试模式 突出显示可能导致移动平台上渲染问题的未定义像素。这会影响Unity编辑器游戏视图,以及如果您在构建设置中选择**开发构建**,则会影响您的构建应用程序。有关更多信息,请参阅LoadStoreActionDebugModeSettings
仅限编辑器 指示加载/存储操作调试模式是否仅在Unity编辑器中运行。

注意:仅当加载/存储操作调试模式设置为true时,此属性才可见。

Vulkan 设置

属性 描述
SRGB写入模式 启用此选项以允许Graphics.SetSRGBWrite()渲染器在运行时切换sRGB写入模式。也就是说,如果要暂时关闭线性到sRGB写入颜色转换,可以使用此属性来实现。启用此选项会对移动基于图块的GPU的性能产生负面影响;因此,请勿为移动设备启用此选项。
交换链缓冲区数量 将此选项设置为2以进行双缓冲,或设置为3以进行三缓冲以与Vulkan渲染器一起使用。此设置可能有助于某些平台上的延迟,但在大多数情况下,您不应将其从默认值3更改。双缓冲可能会对性能产生负面影响。请勿在Android上使用此设置。
尽可能晚地获取交换链图像 如果启用,Vulkan会延迟获取后缓冲区,直到它将帧渲染到离屏图像之后。Vulkan使用暂存图像来实现这一点。启用此设置会导致在呈现后缓冲区时进行额外混合。此设置与双缓冲结合使用可以提高性能。但是,它也可能导致性能问题,因为额外的混合会占用带宽。
回收命令缓冲区 指示在Unity执行CommandBuffers后是否回收或释放它们。
在渲染期间应用显示旋转 启用此功能可在显示器的本机方向执行所有渲染。这在许多设备上都具有性能优势。有关更多信息,请参阅有关帧缓冲区方向的文档。
Android Vulkan拒绝过滤器列表 指定用于识别在运行Unity应用程序时不应使用Vulkan API的Android设备的条件。

使用以下参数集来定义拒绝条件。所有参数都是可选的。除了Vulkan API版本和驱动程序版本参数外,您可以使用正则表达式来设置参数。Unity编辑器会针对无效的正则表达式显示错误。
有关更多信息,请参阅有关允许或拒绝Vulkan API使用的文档。

注意:如果您未在播放器设置中包含备用图形API(例如OpenGLES3),则您的应用程序将无法在满足拒绝条件的任何设备上启动。
供应商 Android设备中使用的GPU硬件的供应商名称。例如,Qualcomm、ARM。
设备名称 Android设备中使用的GPU型号的名称。例如,Adreno (TM) 740。
品牌 Android设备的制造商名称。例如,google、samsung。
产品名称 Android设备的产品代号。例如,barbet、mermaid。
Android操作系统版本 设备运行的Android操作系统版本。例如,13
Vulkan API版本 Android设备上可用的最低所需Vulkan API版本。以以下任一格式输入版本号
MajorVersion.MinorVersion.PatchVersion,其中MinorVersion和PatchVersion是可选的。例如,1.1.128
• 以0x开头的十六进制格式,最多8位数字。例如,0x00401080

注意:此参数不允许使用正则表达式。
驱动程序版本 最低所需的Vulkan设备驱动程序版本。以以下任一格式输入版本号
MajorVersion.MinorVersion.PatchVersion,其中MinorVersionPatchVersion是可选的。例如,0.676.0
• 以0x开头的十六进制格式,最多8位数字。例如,0x002a4000

注意:此参数不允许使用正则表达式。
Android Vulkan允许过滤器列表 指定用于识别在运行Unity应用程序时应始终使用Vulkan图形API的Android设备的条件。

如果某个设备同时包含在拒绝和允许过滤器列表中,则允许过滤器优先,并且该设备将使用Vulkan API。您可以使用这些列表来限制大量性能较差的设备使用Vulkan API,同时仍然允许该类别中使用Vulkan API性能更好的设备。如果拒绝和允许过滤器列表都包含相同的值,则Unity将忽略列表中指定的条件。
有关更多信息,请参阅有关允许或拒绝Vulkan API使用的文档。

注意:有关用于定义条件的参数说明,请参阅Android Vulkan拒绝过滤器列表

识别

Identification settings for the Android platform
Android平台的识别设置
属性 功能
覆盖默认包名称 指示是否覆盖应用程序的默认包名称。

注意:此设置会影响macOS、iOS、tvOS和Android。
包名称 设置应用程序ID,该ID在设备和Google Play商店中唯一标识您的应用程序。应用程序ID必须遵循com.YourCompanyName.YourProductName约定,并且只能包含字母数字和下划线字符。每个段必须以字母字符开头。有关更多信息,请参阅设置应用程序ID
重要提示:Unity会自动删除您键入的任何无效字符。
要设置此属性,请启用**覆盖默认包名称**。
版本 输入捆绑包的构建版本号,该版本号标识捆绑包的迭代(已发布或未发布)。版本以包含数字的字符串的常用格式指定,数字之间用点分隔(例如,4.3.2)。(iOS和Android共享)。
捆绑包版本代码 内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,数字越高表示版本越新。这不是向用户显示的版本号;该数字由versionName属性设置。该值必须设置为整数,例如“100”。您可以根据需要定义它,只要每个后续版本都有一个更高的数字即可。

例如,它可以是构建编号。或者,您可以将“x.y”格式的版本号转换为整数,方法是在低16位和高16位中分别编码“x”和“y”。或者,您只需在每次发布新版本时将数字增加1即可。

如果启用了**按目标架构拆分APK**,请将此数字保持在100000以下。每个APK必须具有唯一的版本代码,因此Unity会为ARMv7将数字增加100000,为ARM64增加200000。
最低API级别 运行应用程序所需的最低Android版本(API级别)。
目标API级别 编译应用程序的目标Android版本(API级别)。

配置

属性 描述
脚本后端 选择要使用的脚本后端。脚本后端决定Unity如何编译和执行项目中的C#代码。
Mono 将C#代码编译为.NET通用中间语言(CIL),并使用通用语言运行时执行该CIL。有关更多信息,请参阅MonoUnity中使用的脚本后端。 更多信息
参见术语表
IL2CPP 将C#代码编译为CIL,将CIL转换为C++,然后将该C++编译为本机机器代码,该代码在运行时直接执行。有关更多信息,请参阅IL2CPPUnity开发的脚本后端,您可以在为某些平台构建项目时将其用作Mono的替代方案。 更多信息
参见术语表
API兼容性级别 选择项目中可以使用哪些.NET API。此设置可能会影响与第三方库的兼容性。但是,它对编辑器特定的代码(编辑器目录中的代码或编辑器特定的程序集定义中的代码)没有影响。

提示:如果您遇到第三方程序集的问题,可以尝试以下面的API兼容性级别部分中的建议。
.Net Framework 与.NET Framework 4兼容(包括.NET Standard 2.0配置文件中的所有内容以及其他API)。在使用访问.NET Standard 2.0中未包含的API的库时,请选择此选项。生成更大的构建,并且任何其他可用的API不一定在所有平台上都受支持。有关更多信息,请参阅引用其他类库程序集
.Net Standard 2.1 生成更小的构建,并具有完全的跨平台支持。
编辑器程序集兼容性级别 选择在编辑器程序集中使用哪些.NET API。
.NET Framework 与.NET Framework 4兼容(包括.NET Standard 2.1配置文件中的所有内容以及其他API)。在使用访问.NET Standard 2.1中未包含的API的库时,请选择此选项。生成更大的构建,并且任何其他可用的API不一定在所有平台上都受支持。有关更多信息,请参阅引用其他类库程序集
.NET Standard

兼容 .NET Standard 2.1。生成更小的构建体积,并具有完整的跨平台支持。
IL2CPP 代码生成 定义 Unity 如何管理 IL2CPP 代码生成。

注意:要使用此功能,请将 脚本后端 设置为 IL2CPP
C++ 编译器配置 选择编译 IL2CPP 生成的代码时使用的 C++ 编译器配置。
调试 调试配置关闭所有优化,这使得代码构建速度更快,但运行速度更慢。
发布 发布配置启用优化,因此编译后的代码运行速度更快,二进制文件大小更小,但编译时间更长。
主版 主版配置启用所有可能的优化,以尽可能提高性能。例如,在使用 MSVC++ 编译器的平台上,此选项启用链接时代码生成。使用此配置编译代码可能比使用发布配置花费的时间长得多。如果构建时间增加是可以接受的,Unity 建议使用主版配置构建游戏的发布版本。
IL2CPP 堆栈跟踪信息 选择要在堆栈跟踪中包含的信息。有关信息类型的更多详细信息,请参阅 使用 IL2CPP 的托管堆栈跟踪
方法名称 在堆栈跟踪中包含每个托管方法。
方法名称、文件名和行号 在堆栈跟踪中包含每个托管方法的文件和行号信息。

注意:使用此选项可能会增加构建时间和构建程序的最终大小。
使用增量 GC 使用增量垃圾收集器,它将垃圾收集分散到多个帧中,以减少垃圾收集相关的帧持续时间峰值。有关更多信息,请参阅 自动内存管理
允许通过 HTTP 下载 指示是否允许通过 HTTP 下载内容。默认选项为 不允许,因为推荐的协议是 HTTPS,它更安全。
不允许 从不允许通过 HTTP 下载。
在开发版本中允许 仅在开发版本中允许通过 HTTP 下载。
始终允许 在开发版本和发布版本中允许通过 HTTP 下载。
静音其他音频源 指示您的 Unity 应用程序是否应停止后台运行的应用程序的音频。否则,后台应用程序的音频将继续与您的 Unity 应用程序一起播放。
目标架构 指定要定位的架构。
ARMv7 启用对 ARMv7 架构的支持。
ARM64 启用对 ARM64 架构的支持。

注意:仅当您将 脚本后端 设置为 IL2CPP 时,此属性才可用。
x86–64(Magic Leap 2) 启用对 x86–64 架构的支持。

注意:仅当您将 脚本后端 设置为 IL2CPP 时,此属性才可用。
为 Arm64 启用 Armv9 安全功能 为 ARM64 版本启用指针身份验证 (PAuth, PAC) 和分支目标识别 (BTI)。

注意:仅当您将 ARM64 设置为目标架构时,此属性才可用。
按目标架构拆分 APK 启用此选项可为在 目标架构 中选择的每个 CPU 架构创建一个单独的 APK。这可以减小 Google Play 商店用户的下载大小。这主要是 Google Play 商店的功能,可能不适用于其他商店。有关更多详细信息,请参阅 多个 APK 支持
安装位置 指定设备上的应用程序安装位置(有关详细信息,请参阅 Android 开发者文档中的安装位置。)
自动 让操作系统决定。用户将能够来回移动应用程序。
首选外部 如果可能,将应用程序安装到外部存储(SD 卡)。操作系统不能保证这一点;如果不可能,应用程序将安装到内部存储器。
强制内部 强制将应用程序安装到内部存储器。用户将无法将应用程序移动到外部存储。
互联网访问 选择是否始终将网络 (INTERNET) 权限添加到 Android 应用清单 中,即使您没有使用任何网络 API。默认情况下,开发版本设置为 需要
自动 仅当您使用网络 API 时才添加互联网访问权限。
需要 始终添加互联网访问权限。
写入权限 选择是否启用对外部存储(例如 SD 卡)的写入访问权限,并将相应的权限添加到 Android 应用清单中。默认情况下,开发版本设置为 External(SDCard)。
内部 仅授予对内部存储的写入权限。
外部(SD 卡) 启用对外部存储的写入权限。
遮挡时过滤触摸 启用此选项以丢弃在另一个可见窗口覆盖 Unity 应用程序时接收到的触摸。这是为了防止点击劫持。
持续性能模式 启用此选项可设置在较长时间内可预测且一致的设备性能水平,而不会出现热节流。启用此设置后,整体性能可能会降低。基于 Android 持续性能 API
最大 Java 堆大小 设置用户构建时使用的最大 Java 堆大小(以兆字节为单位)。默认为 4096。
低精度位置 启用此选项以使用低精度值代替 Android 位置 API。
预测性返回手势支持 启用此选项以使用 Android 的 OnBackInvokedCallback 处理 Android 13 及更高版本上的返回事件。
Android TV 兼容性 启用此选项可将应用程序标记为 Android TV 兼容。
Android 游戏 启用此选项可将输出包 (APK) 标记为游戏,而不是常规应用程序。

注意:仅当 Android TV 兼容性 设置为 true 时,此属性才可见。
Android 游戏手柄支持级别 选择您的应用程序为游戏手柄提供的支持级别。

注意:仅当 Android TV 兼容性 设置为 true 时,此属性才可见。
可与方向键配合使用 应用程序可与方向键完全配合使用。不需要游戏手柄。
支持游戏手柄 应用程序可与游戏手柄配合使用,但不需要它。
需要游戏手柄 应用程序需要游戏手柄才能使用。
警告应用程序包大小 启用此选项可在 Android 应用包 的大小超过某个阈值时收到警告。此选项默认选中,并且只有在您将构建类型选择为 发布并在 构建设置 中启用 构建应用包(Google Play) 选项时才能配置它。
应用包大小阈值 输入大小(以 MB 为单位)。当您的应用包超过此大小时,Unity 会显示警告,并建议根据 Google Play 最大大小限制 对生成的发布应用包执行完整大小验证。
警告符号大小 启用此选项可在符号 zip 包或 Android 应用包 中嵌入的符号的大小超过某个阈值时收到警告。此选项默认选中,并且只有在您在 构建设置 中将 调试符号 设置为 公开/调试 时才能配置它。
符号大小阈值 输入大小(以 MB 为单位)。当您的符号包超过此大小时,Unity 会显示警告。
应用程序入口点 要为您的应用程序生成的应用程序入口点。有关更多信息,请参阅 Android 应用程序入口点
活动 生成 活动应用程序入口点
GameActivity 生成 GameActivity 应用程序入口点
活动输入处理 选择如何处理用户的输入。
输入管理器(旧版) 使用传统的 Input 设置。
输入系统包(新版) 使用 Input 系统。此选项要求您安装 InputSystem 包
两者 使用这两个系统。

注意:此选项在 Android 上不受支持。

API兼容性级别

您可以为所有目标选择您的 Mono API 兼容性级别。有时,第三方 .NET 库会使用超出您的 .NET 兼容性级别的功能。要了解此类情况下发生了什么以及如何最好地解决它,请尝试遵循以下建议

  1. 为 Windows 安装 ILSpy
  2. 将您遇到问题的 API 兼容性级别的 .NET 程序集拖放到 ILSpy 中。您可以在 Frameworks/Mono/lib/mono/YOURSUBSET/ 下找到这些程序集。
  3. 拖入您的第三方程序集。
  4. 右键单击您的第三方程序集,然后选择 分析
  5. 在分析报告中,检查 依赖项 部分。该报告以红色突出显示第三方程序集依赖的任何内容,但在您选择的 .NET 兼容性级别中不可用。

着色器设置

属性 描述
着色器精度模型 选择着色器使用的默认精度。有关更多信息,请参阅 在着色器中使用 16 位精度
平台默认值 在移动平台上使用较低精度,在其他平台上使用完整精度。
统一 如果平台支持,则使用较低精度。
严格的着色器变体匹配 启用此选项可在 Player 构建中缺少着色器变体时使用错误着色器进行渲染,并在控制台中显示错误。错误指定用于着色器变体搜索的着色器、子着色器索引、通道和关键字
保持已加载的着色器处于活动状态 保持所有已加载的着色器处于活动状态并防止卸载。

着色器变体加载设置

使用这些设置来控制 着色器在 GPU 上运行的程序。 更多信息
请参阅 术语表
在运行时使用多少内存。

属性 描述
默认块大小(MB) 设置 Unity 存储在所有平台的构建应用程序中的压缩着色器变体数据块的最大大小。默认为 16。有关更多信息,请参阅 着色器加载
默认块计数 设置 Unity 在所有平台上保持在内存中的解压缩块数量的默认限制。默认为 0,这意味着没有限制。
覆盖 启用覆盖此构建目标的 默认块大小默认块计数
块大小(MB) 覆盖此构建目标上的 默认块大小(MB) 值。
块计数 覆盖此构建目标上的 默认块计数 值。

脚本编译

Script compilation settings for the Android platform
Android 平台的脚本编译设置
属性 描述
脚本定义符号 设置自定义编译标志。

有关更多详细信息,请参阅 平台相关的编译

附加编译器参数 在此列表中添加条目以将其他参数传递给 Roslyn 编译器。每个其他参数使用一个新条目。
要创建新条目,请点击**添加**(**+**)。要删除条目,请点击**删除**(**-**)。

添加所有所需参数后,点击**应用**以在将来的编译中包含您的其他参数。点击**恢复**将此列表重置为最近应用的状态。
抑制常见警告 指示是否显示 C# 警告CS0169CS0649
允许“不安全”代码 启用对在预定义程序集(例如 Assembly-CSharp.dll)中编译“不安全” C# 代码的支持。
对于程序集定义文件 (.asmdef),请点击您的一个 .asmdef 文件并在出现的检查器窗口中启用该选项。
使用确定性编译 指示是否阻止使用 -deterministic C# 标志进行编译。启用此设置后,每次编译生成的程序集在字节级别上都相同。

有关更多信息,请参阅控制代码生成的 C# 编译器选项

优化

属性 描述
预烘焙碰撞网格 在构建时将碰撞数据添加到网格
预加载资源 设置一个资源数组,供玩家在启动时加载。
要添加新的资源,请增加**大小**属性的值,然后在出现的新**元素**框中设置要加载的资源的引用。
剥离引擎代码 如果您希望 Unity 链接器工具删除项目不使用的 Unity 引擎功能的代码,请启用此选项。此设置仅适用于IL2CPP 脚本后端。大多数应用程序不会使用每个可用的 DLL。此选项会剥离应用程序不使用的 DLL,以减小构建的播放器的尺寸。如果您的应用程序正在使用一个或多个在当前设置下通常会被剥离的类,则当您尝试构建应用程序时,Unity 会显示一条调试消息。
托管剥离级别 选择 Unity 剥离未使用的托管(C#)代码的力度。当 Unity 构建您的应用程序时,Unity 链接器进程可以从项目使用的托管 DLL 中剥离未使用的代码。剥离代码可以使生成的执行文件更小,但有时会删除正在使用的代码。

有关这些选项以及使用 IL2CPP 进行字节码剥离的更多信息,请参阅ManagedStrippingLevel
最小 使用此选项来剥离类库、UnityEngine、Windows 运行时程序集,并复制所有其他程序集。
删除无法访问的托管代码以减小构建大小并缩短 Mono/IL2CPP 构建时间。
运行 UnityLinker 以减小代码大小,超出**低**可以达到的范围。您可能需要支持自定义 link.xml 文件,并且某些反射代码路径的行为可能会有所不同。
UnityLinker 将尽可能多地剥离代码。这将进一步减小代码大小,超出中可以达到的范围,但某些方法的托管代码调试可能不再有效。您可能需要支持自定义 link.xml 文件,并且某些反射代码路径的行为可能会有所不同。
启用内部探查器(已弃用) 此功能已弃用,将在 Unity 的未来版本中停用。请改用探查器窗口(菜单:**窗口 > 分析 > 探查器**)。

探查器收集应用程序性能数据并将报告打印到控制台。该报告包含每个 Unity 子系统在每个帧上执行所花费的毫秒数,平均跨越 30 帧。
顶点压缩 设置每个通道的顶点压缩。这会影响项目中的所有网格。
通常,顶点压缩用于减小内存中网格数据的大小、减小文件大小并提高 GPU 性能。

有关如何配置顶点压缩以及此设置的限制的更多信息,请参阅压缩网格数据
优化网格数据 启用此选项以从构建中使用的网格中剥离未使用的顶点属性。此选项减少了网格中的数据量,这有助于减小构建大小、加载时间和运行时内存使用量。

警告:如果启用了此设置,请勿在运行时更改材质或着色器设置。

有关更多信息,请参阅PlayerSettings.stripUnusedMeshComponents
纹理 Mipmap 剥离 为所有平台启用 mipmap 剥离。它在构建时从纹理中剥离未使用的 mipmap 层级。
Unity 通过将 mipmap 层级与当前平台的质量设置进行比较来确定未使用的 mipmap 层级。如果某个 mipmap 层级被当前平台的每个质量设置排除在外,则 Unity 会在构建时从构建中剥离这些 mipmap 层级。如果QualitySettings.globalTextureMipmapLimit 设置为已剥离的 mipmap 层级,则 Unity 会将该值设置为未剥离的最近的 mipmap 层级。

堆栈跟踪

根据您需要的日志类型,通过启用与每个日志类型(**错误**、**断言**、**警告**、**日志**和**异常**)相对应的选项来选择您首选的堆栈跟踪方法。

Logging settings for Android platform
Android 平台的日志设置
属性 描述
从不记录日志。
仅脚本 仅在运行脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以您喜欢的任何方式响应用户输入。 更多信息
参见词汇表
时记录日志。
全部 始终记录日志。

有关更多信息,请参阅堆栈跟踪日志记录

旧版

启用**钳位混合形状(已弃用)**选项以钳位SkinnedMeshRenderer中混合形状权重的范围。

发布设置

使用以下发布设置配置 Unity 如何构建您的 Android 应用程序。

Android publishing panel
Android 发布面板

注意:出于安全原因,Unity 不会保存您的密钥库或项目密钥密码。

使用密钥库管理器窗口创建、配置和加载您的密钥和密钥库。您可以从密钥库管理器或主 Android 发布面板加载现有的密钥库和密钥。如果您选择从密钥库管理器内部加载这些密钥,则 Unity 会自动填充项目密钥库和项目密钥字段。有关更多信息,请参阅有关密钥库管理器的文档。

项目密钥库

密钥库是一个容器,用于保存用于应用程序安全的签名密钥。有关详细信息,请参阅 Android 开发人员文档:Android 密钥库系统。

使用**项目密钥库**设置选择要用于打开项目的密钥库。当您加载密钥库时,Unity 会加载该密钥库中的所有密钥。要在打开的项目中加载和使用现有密钥库

  1. 启用**自定义密钥库**。
  2. 打开**选择**下拉列表,选择**浏览**,然后从文件系统中选择一个密钥库。
  3. 输入您的**密钥库密码**。

如果您没有现有的密钥库,请保持**自定义密钥库**禁用状态。

Unity 使用调试密钥库来签署您的应用程序。调试密钥库是一个有效的密钥库。它允许您签署应用程序并在本地对其进行测试。但是,应用商店将拒绝以这种方式签名的应用程序。这是因为应用商店无法使用调试密钥库验证应用程序的有效性和所有权。

属性 描述
自定义密钥库 启用**自定义密钥库**以加载和使用现有密钥库。
选择 启用**自定义密钥库**后,使用此选项选择要使用的密钥库。**选择**下拉列表中分区下方的密钥库存储在预定义的专用位置。有关更多详细信息,请参阅选择密钥库位置
路径 您无需输入密钥库路径。Unity 会根据您选择的密钥库提供此路径。
密码 输入您的密钥库密码以加载您选择的密钥库。

项目密钥

加载密钥库时,Unity 会加载该密钥库中的所有密钥。使用**项目密钥**设置从该密钥库中选择一个密钥,以用作打开项目的活动密钥。

属性 描述
别名 选择要用于打开项目的密钥。
密码 输入您的密钥密码。

构建

默认情况下,Unity 使用随 Unity 安装提供的清单文件、Gradle一个 Android 构建系统,可自动执行多个构建过程。这种自动化意味着许多常见的构建错误不太可能发生。 更多信息
参见词汇表
模板和 Proguard 文件构建您的应用程序。使用 Android 发布设置的**构建**部分更改这些文件。

要使用自定义清单文件、Gradle 模板或 Proguard 文件

  1. 启用相应的复选框。Unity 会在您的项目中创建一个默认文件,并且文件位置会显示在复选框下方。
  2. 打开新文件并进行更改。
  3. 保存对此文件的更改。Unity 会在下次构建应用程序时自动使用保存到此文件的更改。

“构建”部分中的设置仅适用于当前项目的构建过程。

属性 描述
自定义主清单 Android LibraryManifest.xml 文件的可自定义版本。此文件包含有关 Android 应用程序的重要元数据。有关主/Unity 库清单职责的更多信息,请参阅Unity 库清单
自定义启动器清单 Android LauncherManifest.xml 文件的可自定义版本。此文件包含有关 Android 应用程序启动器的重要元数据。有关 Unity 启动器清单职责的更多信息,请参阅Unity 启动器清单
自定义主 Gradle 模板 mainTemplate.gradle 文件的可自定义版本。此文件包含有关如何将 Android 应用程序构建为库的信息。有关更多信息,请参阅有关Gradle 项目文件的文档。
自定义启动器 Gradle 模板 launcherTemplate.gradle 文件的可自定义版本。此文件包含有关如何构建 Android 应用程序的说明。有关更多信息,请参阅有关Gradle 项目文件的文档。
自定义基本 Gradle 模板

baseProjectTemplate.gradle 文件的可自定义版本。此文件包含所有其他模板和 Gradle 项目之间共享的配置。有关更多信息,请参阅有关 Gradle 项目文件 的文档。
自定义 Gradle 属性模板 gradle.properties 文件的可自定义版本。此文件包含 Gradle 构建环境的配置设置。这包括
• JVM(Java 虚拟机)内存配置。
• 允许 Gradle 使用多个 JVM 进行构建的属性。
• 用于选择用于缩小的工具的属性。
• 用于在构建应用包时不压缩原生库的属性。
自定义 Gradle 设置模板 settingsTemplate.gradle 文件的可自定义版本。此文件包含用于解析应用程序所需外部依赖项的构件存储库的声明。
自定义 Proguard 文件 proguard.txt 文件的可自定义版本。此文件包含缩小过程的配置设置。如果缩小删除了一些应该保留的 Java 代码,则应在此文件中添加规则以保留该代码。有关更多信息,请参阅有关 缩小 的文档。

缩小

缩小是一个缩减、混淆和优化应用程序中代码的过程。它可以减少代码大小并使代码更难以反汇编。使用“缩小”设置来定义 Unity 何时以及如何将缩小应用于您的构建。

在大多数情况下,最佳实践是仅将缩小应用于发布版本,而不是调试版本。这是因为缩小需要时间,并且会使构建速度变慢。由于代码经历了优化,因此它也可能使调试变得更加复杂。

注意:如果通过反射引用 Java 代码,则缩小过程 (R8/Proguard) 无法推断该代码正在使用中,并会删除该代码。您可以使用 自定义 Proguard 文件 保留所需的代码。

“缩小”部分中的设置仅适用于当前项目的构建过程。

属性 描述
发布 如果您希望 Unity 在发布版本中缩小应用程序的代码,请启用此复选框。
调试 如果您希望 Unity 在调试版本中缩小应用程序的代码,请启用此复选框。

拆分应用程序二进制文件

启用拆分应用程序二进制文件选项可将输出包拆分为主 (APK) 和扩展 (OBB) 包。如果您想发布大于 100 MB 的应用程序,Google Play 商店需要此选项。

在应用包中报告依赖项

如果您计划将应用程序构建为 Android 应用包 (AAB) 以供 Google Play 使用,请启用此选项以在应用包中包含有关依赖项的信息。有关更多信息,请参阅 报告应用依赖项 部分。

注意:只有在 Android 构建设置 中启用构建应用包 (Google Play) 选项时,才能与此设置交互。



  • 5.5 中更新的功能
  • 持续性能模式在 2017.3 中添加
  • .NET 4.x 运行时在 2018.1 中添加
  • Android 多个 APK 功能在 2018.2 中添加
  • Android 的 OpenGL ES 3.2 支持在 2019.1 NewIn20191 中添加
  • 输入系统预览在 Unity 2019.1 中添加
  • 在安全区域之外渲染在 Unity 2019.1 中添加
  • 在 Unity 2019.2 中添加了有关应用包大小的警告选项
  • GPU 骨骼蒙皮在 Unity 2019.3 中重命名为计算骨骼蒙皮
  • Vuforia 在 Unity 2019.3 中移除
  • 对内置 XR SDK 的支持在 Unity 2019.3 中已弃用。NewIn20193
  • 纹理压缩格式更新

PlayerSettingsAndroid

Android 环境设置
Android 密钥库