本页面将详细介绍 Android 平台特有的 Player 设置。有关常规 Player 设置的描述,请参阅 Player 设置。
有关属性的描述根据 Player UI 中的相应部分进行分组:
属性 | 功能 |
---|---|
Adaptive | 设置应用程序中 Android 自适应图标的纹理。 |
Round | 设置应用程序中 Android 圆形图标的纹理。 |
Legacy | 设置应用程序中 Android 旧版图标的纹理。 |
Enable Android Banner | 为 Android TV 版本启用自定义横幅。 |
使用 Resolution and Presentation 部分可以自定义屏幕外观的各个方面。
设置 | 功能 |
---|---|
Start in fullscreen mode | 加载启动画面或第一个场景时隐藏导航栏。如果未设置此选项,则在加载启动画面或第一个场景加载时将显示导航栏。 |
Render outside safe area | 启用此选项可允许使用所有可用的屏幕空间(包括显示屏缺口(凹口)区域)进行渲染。有关更多信息,请参阅 Android 开发者网站上的显示屏凹口支持。 |
Optimized Frame Pacing | 启用此选项可允许 Unity 均匀分配帧以减少帧率变化,从而使游戏过程更流畅。 |
Resolution and Presentation 中的其他属性按照以下几部分进行分组:
设置 | 功能 | |
---|---|---|
Resolution Scaling Mode | 允许将缩放设置为等于或低于屏幕原始分辨率。 | |
FixedDPI | 允许将设备的屏幕分辨率缩放为低于其原始分辨率,并显示 Target DPI 属性。使用此属性可优化性能和电池续航时间,或者针对特定的 DPI 设置。 | |
Disabled | 确保不应用缩放,并且游戏渲染屏幕原始分辨率。 | |
Target DPI | 设置游戏画面的分辨率。如果设备的屏幕原始 DPI 高于此值,则 Unity 会降低游戏画面分辨率以匹配此设置。缩放的计算公式为 min(Target DPI * Factor / Screen DPI, 1) 。Factor 由 Quality 设置中的 Resolution Scaling Fixed DPI Factor 进行控制。注意:仅当 Resolution Scaling Mode 设置为 Fixed DPI 时才会显示此选项。 |
|
Blit Type | 控制是否使用 blit 将最终图像渲染到屏幕。 | |
Always | (始终 blit)使 Unity 渲染到屏幕外缓冲区,然后复制到系统帧缓冲区。此选项兼容大部分设备,但通常比 Never blit 设置更慢。 | |
Never | (从不 blit)使 Unity 渲染到 OS 提供的帧缓冲区。如果在应用程序运行时出现导致此操作失败的情况,应用程序将向设备日志输出一次性警告。Never blit 通常比 Always blit 更快,但无法兼容所有设备。 | |
Auto | 尽可能使 Unity 渲染到 OS 提供的帧缓冲区。如果满足阻止应用程序渲染到系统帧缓冲区的条件,则应用程序将切换到屏幕外渲染并向设备控制台发出警告。 |
为设备设置 Aspect Ratio Mode。可以选择 Legacy Wide Screen (1.86)、Native Aspect Ratio 和 Custom。选择 Custom 时,会出现 Up To 字段。
使用 Up To 属性设置自定义的最大屏幕宽度。仅当 Aspect Ratio Mode 设置为 Custom 时,此属性才可用。
从 Default Orientation 下拉菜单中选择游戏的屏幕方向:
设置 | 功能 |
---|---|
Portrait | 主屏幕按钮显示在底部。 |
Portrait Upside Down | 主屏幕按钮显示在顶部。 |
Landscape Left | 主屏幕按钮显示在右侧。 |
Landscape Right | 主屏幕按钮显示在左侧。 |
Auto Rotation | 允许屏幕自动旋转到 Allowed Orientations for Auto Rotation 设置指定的任何方向。此为默认值。 |
注意:iOS 和 Android 设备共享此设置。
将方向设置为 Auto Rotation 时,将显示 Allowed Orientations for Auto Rotation 部分。
仅当 Default Orientation 设置为 Auto Rotation 时才会显示此部分。
由于 Auto Rotation 会更改屏幕方向以匹配设备,您可能希望限制允许的屏幕方向(例如,将设备锁定为横向)。
通过选中本部分中的复选框,启用要允许的每个方向:
设置 | 功能 |
---|---|
Portrait | 允许纵向方向。 |
Portrait Upside Down | 允许纵向上下翻转方向。 |
Landscape Right | 允许横向右侧方向(主屏幕按钮位于左侧)。 |
Landscape Left | 允许横向左侧方向(主屏幕按钮位于右侧)。 |
设置 | 功能 |
---|---|
Use 32-bit Display Buffer | 启用此选项可创建显示缓冲区以保存 32 位颜色值(默认为 16 位)。如果在后期处理效果中看到条带或需要 Alpha,请使用此选项,因为这些效果使用与显示缓冲区相同的格式创建渲染纹理。 |
Disable Depth and Stencil | 启用此选项可禁用深度和模板缓冲区。 |
Render Over Native UI | 如果希望 Unity 在 Android 或 iOS 上的 UI 之上渲染,请启用此选项。摄像机的 Clear Flags 必须设置为 Solid color,并且 Alpha 小于 1,此属性才能生效。 |
Show Loading Indicator | 选择应如何显示加载指示符。选项为 Don’t Show、Large、Inversed Large、Small 和 Inversed Small。 |
在通用 Splash Screen 设置之上,可以使用 Virtual Reality Splash Image 设置来指定虚拟现实显示的自定义启动画面。
以下是通用 Splash Screen 设置,可以设置特定于 Android 的 Static Splash Image 选项。
使用 Android Splash Screen 属性可指定应该用于 Android 启动画面的纹理。启动画面图像的标准大小为 320x480。
从 Splash Scaling 下拉菜单中选择您希望 Unity 如何缩放启动画面以适合设备的屏幕。选项包括:
此部分可以自定义一系列选项,这些选项分为以下几组:
使用这些设置可自定义 Unity 针对 Android 平台渲染游戏的方式。
属性 | 功能 |
---|---|
Color Space | 选择应该用于渲染的颜色空间,选项为:__Gamma__ 或 Linear。 请参阅线性渲染概述以了解这两者之间的区别。 |
Auto Graphics API | 禁用此选项可手动选择和重新排序图形 API。(OpenGL)。默认情况下会启用此选项,并且 Unity 会尝试 GLES3.2。如果设备不支持 GLES3.2,Unity 将回退到 GLES3.1、GLES3 或 GLES2。如果列表中只有 GLES3,则会出现其他复选框:__Require ES3.1、Require ES3.1+AEP__ 和 Require ES3.2。这些选项允许您强制使用相应的图形 API。 重要信息:仅当 GLES2 不在列表中并且 Minimum API Level 设置为 JellyBean(API 级别 18)或更高版本时,Unity 才会将 GLES3/GLES3.1/AEP/3.2 要求添加到 Android 清单中。只有在这种情况下,应用程序才不会显示在不受支持设备上的 Google Play 应用商店中。 |
Color Gamut | 可以为 Android 平台添加或删除色域以用于渲染。单击加号 (+) 图标查看可用色域的列表。色域定义了给定设备(如监视器或屏幕)可以使用的所有颜色范围。sRGB 色域是默认色域(也是必需色域)。如果目标设备是具备宽色域显示屏的设备,请使用 DisplayP3 充分利用显示能力。 |
Multithreaded Rendering | 启用此选项可将 Unity 的主线程中的图形 API 调用移动到单独的工作线程。这有助于提高主线程上 CPU 使用率很高的应用程序的性能。 |
Static Batching | 启用此选项可在构建中使用静态批处理(默认情况下启用)。 |
Dynamic Batching | 启用此选项可在构建中使用动态批处理(默认情况下启用)。 注意:当可编程渲染管线激活时,动态批处理无效,所以仅当 Graphics Settings 中未设置编程渲染管线资源时,此设置才可见。 |
Compute Skinning | 启用此选项可使用 GPU 计算蒙皮,这样可以释放 CPU 资源。在支持 OpenGL ES 3.1 或 Vulkan 的设备上都支持计算蒙皮。要了解有关 GPU 计算蒙皮的更多信息,请参阅关于骨骼动画的 Wikipedia 页面。 |
Graphics Jobs | 启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 核心上运行的工作线程。这可以减少主线程上 Camera.Render 所花费的时间,该时间通常成为瓶颈。 注意:Unity 目前仅在使用 Vulkan 时支持图形作业 (Graphics Jobs),使用 OpenGL ES 时此设置无效。 |
Lightmap Encoding | 选择 Low Quality、Normal Quality 或 High Quality 来设置光照贴图编码。此设置影响光照贴图的编码方案和压缩格式。 |
Lightmap Streaming Enabled | 启用此选项可以仅根据需要加载光照贴图 Mipmap。要渲染当前游戏摄像机,Unity 会在生成纹理时将此值应用于光照贴图纹理。 注意:要使用此值,请启用 Texture Streaming Quality 设置。 |
Streaming Priority | 定义在争用资源时的光照贴图 Mipmap 串流优先级。有效范围是 –127 到 128,其中正数表示更高的优先级。仅当选中 Lightmap Streaming Enabled 时,此设置才可用。要使用此值,请启用 Texture Streaming Quality 设置。 |
Protect Graphics Memory | 选中此框可强制仅通过受硬件保护的路径显示图形缓冲区。仅适用于支持该选项的设备。 |
Enable Frame Timing Stats | 收集有关帧在 CPU 和 GPU 上花费的时间的统计信息。 |
启用 SRGB Write Mode 选项可允许 Vulkan 渲染器上的 Graphics.SetSRGBWrite() 在帧期间切换 sRGB 写模式。
注意:启用此功能可能会降低性能,尤其是基于区块的 GPU。
设置 | 功能 | ||
---|---|---|---|
Scripting Backend | 选择要使用的脚本后端。脚本后端确定 Unity 如何在项目中编译和执行 C# 代码。 | ||
Mono | 将 C# 代码编译为 .NET 公共中间语言 (CIL) 并使用公共语言运行时执行该 CIL。有关更多信息,请参阅 Mono Project 网站。 | ||
IL2CPP | 将 C# 代码编译为 CIL,将 CIL 转换为 C++,然后将该 C++ 编译为本机机器代码,该代码在运行时直接执行。请参阅 IL2CPP 以了解更多信息。 | ||
API Compatibility Level | 选择可以在项目中使用的 .NET API 运行时。此设置可能会影响与第三方库的兼容性。 提示:如果您遇到第三方程序集的问题,可以尝试下文的 API Compatibility Level 部分中的建议。 |
||
.Net 2.0 | .Net 2.0 库。最高的 .net 兼容性,最大的文件大小。属于已弃用的 .NET 3.5 运行时。 | ||
.Net 2.0 Subset | 完整 .net 兼容性的子集,最小的文件大小。属于已弃用的 .NET 3.5 运行时。 | ||
.Net Standard 2.0 | 兼容 .NET Standard 2.0。生成较小的构建并具有完整的跨平台支持。 | ||
.Net 4.x | 兼容 .NET Framework 4(包括 .NET Standard 2.0 配置文件中的所有内容以及其他 API)。如果使用的库需要访问 .NET Standard 2.0 中未包含的 API,请选择此选项。生成更大的构建,并且任何可用的其他 API 不一定在所有平台上都受支持。有关更多信息,请参阅引用其他类库程序集。 | ||
C++ Compiler Configuration | 选择在编译 IL2CPP 生成的代码时使用的 C++ 编译器配置。 注意:除非 Scripting Backend 设置为 IL2CPP_,否则此属性被禁用。| |Use incremental GC||使用增量式垃圾回收器,这种垃圾回收器将垃圾收集工作分布在多个帧上,因此可以在帧持续时间中减少与 gc 相关的峰值。| |Mute Other Audio Sources ||如果希望 Unity 应用程序从后台运行的应用程序中停止音频,请启用此选项。否则,来自后台应用程序的音频继续与 Unity 应用程序一起播放。| |Target Architectures ||选择要允许在哪些 CPU 上运行应用程序(32 位 ARM、64 位 ARM 和 32 位 Intel)。 注意:在 64 位环境中运行 Android 应用程序具有性能优势,且 64 位应用程序可以寻址超过 4 GB 的内存空间。| |Split APKs by target architecture (Experimental) ||启用此选项可为 Target Architectures 中选择的每个 CPU 架构创建单独的 APK。因此,Google Play 应用商店用户的下载文件将变小。这是 Google Play 应用商店的特色功能,在其他应用商店中可能无效。有关更多详细信息,请参阅多 APK 支持 (Multiple APK Support)。| |Install Location ||指定设备上的应用程序安装位置(有关详细信息,请参阅有关安装位置的 Android 开发者文档。| ||Automatic_ |
让操作系统决定。用户可以来回移动应用程序。 | |
Prefer External | 如果可能,将应用程序安装到外部存储(SD 卡)。操作系统不保证会安装到外部存储;如果不能,该应用程序将安装到内部内存。 | ||
Force Internal | 强制将应用程序安装到内部内存。用户将无法将应用程序移动到外部存储。 | ||
Internet Access | 选择是否始终将网络 (INTERNET ) 权限添加到 Android 清单(即使您没有使用任何网络 API)。默认情况下,对于开发版设置为 Require。 |
||
Auto | 仅当使用了网络 API 时才会添加互联网访问权限。 | ||
Require | 始终添加互联网访问权限。 | ||
Write Permission | 选择是否启用对外部存储(例如 SD 卡)的写访问权限,并为 Android 清单添加相应的权限。默认情况下,对于开发版设置为 External(SDCard)。 | ||
Internal | 仅授予对内部存储的写入权限。 | ||
External(SDCard) | 启用对外部存储的写入权限。 | ||
Filter Touches When Obscured | 启用此选项可忽略另一个可见窗口覆盖 Unity 应用程序时收到的触摸操作。这是为了防止点击劫持。 | ||
Sustained Performance Mode | 启用此选项可在较长时间内设置可预测且一致的设备性能级别,而无需考虑热节流。启用此设置时,整体性能可能会降低。基于 Android Sustained Performance API。 | ||
Maximum Java Heap Size | 设置用户可以构建的最大 Java 堆大小(以兆字节为单位)。默认为 4096。 | ||
Low Accuracy Location | 启用此选项可改用 Android 位置 API 提供的低精度值。 | ||
Android TV Compatibility | 启用此选项可将应用程序标记为兼容 Android TV。 | ||
Android Game | 启用此选项可将输出包 (APK) 标记为游戏而非常规应用程序。 | ||
Android Gamepad Support Level | 选择应用程序为游戏手柄提供的支持程度。选项为 Works with D-Pad、Supports Gamepad 和 Requires Gamepad。 | ||
Warn about App Bundle size | 启用此选项可以在 Android App Bundle 超过特定阈值时收到警告。默认情况下会选择此选项,仅当在构建设置 (Build settings) 中启用了 Build App Bundle (Google Play) 选项时,才能配置此选项。 | ||
App Bundle size threshold | 输入以 Mb 为单位的大小。当 App Bundle 超过此大小时,Unity 将显示警告。 | ||
Scripting Define Symbols | 设置自定义编译标志。有关更多详细信息,请参阅平台相关的编译。 | ||
Allow ‘unsafe’ Code | 允许在预定义的程序集(例如,Assembly-CSharp.dll )中编译“不安全”的 C# 代码。对于程序集定义文件 ( .asmdef ),请单击其中一个 .asmdef 文件,并在出现的 Inspector 窗口中启用该选项。 |
||
Active Input Handling | 选择您希望如何处理来自用户的输入。 | ||
Input Manager | 使用传统的 Input 设置。 | ||
Input System (Preview) | 使用较新的输入系统。输入系统作为此版本的预览包提供。要试用输入系统的预览版,请安装 InputSystem 包。 | ||
Both | 并排使用两个系统。 |
可为所有目标选择 mono API 兼容性级别。有时,第三方 .NET 库会使用 .NET 兼容性级别之外的功能。为了解在这种情况下可能发生的问题以及如何以最佳方案修复问题,请尝试以下解决方案:
1.安装适用于 Windows 的 Reflector。
2.将出现问题的相关 API 兼容性级别的 .NET 程序集拖到 Reflector 中。这些程序集位于 Frameworks/Mono/lib/mono/YOURSUBSET/
下。
3.拖入第三方程序集。
4.右键单击第三方程序集并选择 Analyze。
5.在分析报告中,检查 Depends on 部分。此报告以红色突出显示第三方程序集所依赖的但在您选择的 .NET 兼容性级别中不可用的任何内容。
设置 | 功能 | |
---|---|---|
Prebake Collision Meshes | 启用此选项可在构建时将碰撞数据添加到网格。 | |
Keep Loaded Shaders Alive | 启用此选项可防止卸载着色器。 | |
Preloaded Assets | 设置一个资源数组,供播放器在启动时加载。 要添加新资源,请增大 Size 属性的值,然后在出现的新 Element 框中设置对要加载的资源的引用。 |
|
Strip Engine Code__(仅限 IL2CPP)||指定 Unity Linker 工具是否删除项目不使用的 Unity 引擎功能的代码。|
|Managed Stripping Level||定义 Unity 剥离未使用的托管 (C#) 代码时的激进程度。 当 Unity 构建游戏或应用程序时,Unity Linker 进程可以从项目中使用的托管动态链接库中剥离未使用的代码。剥离代码可以使生成的可执行文件显著减小,但有时可能会错误地删除实际在使用的代码。此设置允许您选择 Unity 删除未使用代码时应采取的激进程度。| ||Disabled_(仅限 Mono)|不要剥离任何代码。(使用 IL2CPP 时会始终启用托管代码剥离。)| ||Normal|删除无法访问的托管代码以减少构建大小和 Mono/IL2CPP 构建时间。| ||Aggressive_(实验性功能)|比 Normal 选项更激进地删除代码。代码大小进一步降低,但这种额外降低可能会产生副作用。例如,某些方法可能在调试器中不再可见,并且可以剥离通过反射访问的代码。您可以创建自定义 link.xml 文件以保留特定的类和方法。有关更多信息,请参阅使用 IL2CPP 进行托管字节码剥离。| |Enable Internal profiler (Deprecated)||启用此选项可在测试项目时从 Android SDK 的 adblogcat 输出中获取设备中的性能分析器数据。此选项适用于开发版。| |Script Call Optimization__ |
选择如何在运行时选择性地禁用异常处理以提高速度。有关详细信息,请参阅 iOS 优化。 | |
Slow and Safe | 使用完整的异常处理(使用 Mono 脚本后端时会对设备的性能有一些影响)。 | |
Fast but no Exceptions | 不为设备上的异常提供数据(使用 Mono 脚本后端时游戏运行速度更快)。 注意:如果将此选项与 IL2CPP 脚本后端一起使用,不会影响性能;但是,使用此选项可以避免发布版本中出现未定义的行为。 |
|
Vertex Compression | 设置每个通道的顶点压缩。例如,可以为除位置和光照贴图 UV 之外的所有内容启用压缩。为每个导入对象设置的整个网格压缩将覆盖在对象上设置顶点压缩。所有其他内容都遵循这些顶点压缩设置。 | |
Optimize Mesh Data | 启用此选项可从网格中删除应用于网格的材质不需要的所有数据(例如切线、法线、颜色和 UV)。 |
选择在特定上下文中允许的日志记录类型。
选中运行脚本时 (ScriptOnly)、始终 (Full) 或从不 (None) 条件下对应于每个 Log Type(__Error、Assert、Warning、Log__ 和 __Exception__)的复选框。
启用 Clamp BlendShapes (Deprecated) 选项可在 SkinnedMeshRenderers 中钳制混合形状权重的范围。
使用这些设置可自定义 Android 应用程序的构建。
注意:出于安全考虑,Unity 不会在此页面上保存密码。默认情况下,未签名的调试密钥库位于 MacOS 上的 ~/.android/debug.keystore
和 Windows 上的 %USERPROFILE%\.android\debug.keystore
中。
要使用现有的密钥库,请执行以下操作:
1.启用 Use Existing Keystore 选项。 2.单击 Browse Keystore 按钮,然后从文件系统中选择密钥库。 3.在 Keystore password 中输入您的密码。
或者,可以创建一个新密码:
1.启用 Create a new keystore 选项。 2.在 Keystore password 中输入密码。 3.在 Confirm password 中重新输入密码。
从 Alias 下拉菜单中选择您的密钥。
选择后,可以在 Password 中输入密码。
启用 Custom Gradle Template 选项可自定义 Gradle 构建过程,方法是自行提供对 Gradle 构建文件的更改,该文件位于以下位置:Assets/Plugins/Android/mainTemplate.gradle
。
启用 User Proguard File 选项可使用 Proguard 文件来缩小和优化您的应用程序。有关更多信息,请参阅 Gradle for Android。此文件位于以下位置:Assets/Plugins/Android/proguard-user.txt
指定希望使用 Proguard 还是 Gradle (Experimental) 选项进行缩小,还是选择 None 不进行缩小。从 Release 和 Debug 下拉菜单中选择其中一个选项。
启用 Split Application Binary 选项可将输出包拆分为主包 (APK) 和扩展包 (OBB) 包。要将大于 100 MB 的应用程序发布到 Google Play 应用商店,必须启用此选项。
注意:对 XR SDK 的内置支持已被弃用,在 Unity 的未来版本中将不再使用。请改用 Unity XR 插件系统。有关更多信息,请参阅 XR 插件架构。
设置 | 功能 | |
---|---|---|
Virtual Reality Supported | 如果您的应用程序是虚拟现实应用程序,请启用此选项,然后将所需的 VR SDK 添加到列表中。 | |
Virtual Reality SDKs | 在列表中添加和删除虚拟现实 SDK。此列表仅在启用 Virtual Reality Supported 时可用。 要将 SDK 添加到列表中,请单击加号 (+) 按钮。 要从列表中删除 SDK,请选择它,然后单击减号 (-) 按钮。 某些 SDK 提供了额外设置,这些设置显示在此处。有关详细信息,请参阅 XR SDK。 |
|
Stereo Rendering Mode | 选择要为虚拟现实设备渲染的方式。 | |
Multi Pass | 这是正常的渲染模式。Unity 渲染场景两次:首先渲染左眼图像;然后再次为右眼图像。 | |
Single Pass Multiview or Instanced (Preview) | 将两个眼睛图像同时渲染到一个打包的渲染纹理中。这意味着整个场景只渲染一次,这大大减少了 CPU 处理时间。 |