Version: 2020.3
Unity Remote
Android 密钥库管理器

Android Player 设置

本页面将详细介绍 Android 平台特有的 Player 设置。有关常规 Player 设置的描述,请参阅 Player 设置。

Android Player 设置
Android Player 设置

有关属性的描述根据 Player UI 中的相应部分进行分组:

Icon

Android Player 设置的 Icon 部分
Android Player 设置的 Icon 部分
属性 功能
Adaptive 设置应用程序中 Android 自适应图标的纹理。
Round 设置应用程序中 Android 圆形图标的纹理。
Legacy 设置应用程序中 Android 旧版图标的纹理。
Enable Android Banner 为 Android TV 版本启用自定义横幅。

Resolution and Presentation

使用 Resolution and Presentation 部分可以自定义屏幕外观的各个方面。

Android 平台的 Resolution and Presentation 设置 - 全屏
Android 平台的 Resolution and Presentation 设置 - 全屏
Android 平台的 Resolution and Presentation 设置 - 窗口化
Android 平台的 Resolution and Presentation 设置 - 窗口化
设置 功能
Fullscreen Mode 选择全屏模式。此设置定义了启动时的默认窗口模式。
Fullscreen Window 将应用程序窗口设置为显示器的全屏原始分辨率。Unity 以脚本设置的分辨率(或在构建的应用程序启动时由用户选择)渲染应用程序内容,但是将其缩放以填充窗口。缩放时,Unity 会在渲染输出中添加黑条以匹配 Player Settings 设置中选择的宽高比,这样就不会拉伸内容。这个过程被称为[边框化](https://en.wikipedia.org/wiki/Letterboxing_(filming))。
在这种模式下,导航栏总是隐藏的。它替换了 Start in fullscreen mode 选项。
窗口化 将应用程序设置为标准的非全屏可移动窗口,其大小取决于应用程序分辨率。在此模式中,默认情况下可以调整窗口大小。要禁用此功能,请禁用 Resizable Window 设置。
Default Window Width 设置应用程序窗口的默认宽度(以像素为单位)。仅在 Fullscreen Mode 设置为 Windowed 时,此选项才可用。
Default Window Height 设置应用程序窗口的默认高度(以像素为单位)。仅在 Fullscreen Mode 设置为 Windowed 时,此选项才可用。
Minimum Window Width 设置应用程序窗口的最小宽度(以像素为单位)。仅在 Fullscreen Mode 设置为 Windowed 时,此选项才可用。
Minimum Window Height 设置应用程序窗口的最小高度(以像素为单位)。仅在 Fullscreen Mode 设置为 Windowed 时,此选项才可用。
Resizable Window 启用此选项可允许用户调整播放器窗口的大小。
此选项还可在 Android 手机和平板电脑上启用应用程序中的多窗口功能。有关更多信息,请参阅 Google 开发者文档
Render outside safe area 启用此选项可允许使用所有可用的屏幕空间(包括显示屏缺口(凹口)区域)进行渲染。有关更多信息,请参阅 Android 开发者网站上的显示屏凹口支持
Optimized Frame Pacing 启用此选项可允许 Unity 均匀分配帧以减少帧率变化,从而使游戏过程更流畅。

Resolution and Presentation 中的其他属性按照以下几部分进行分组:

Resolution Scaling

Android 平台的 Resolution Scaling 设置
Android 平台的 Resolution Scaling 设置
设置 功能
Resolution Scaling Mode 允许将缩放设置为等于或低于屏幕原始分辨率。
FixedDPI 允许将设备的屏幕分辨率缩放为低于其原始分辨率,并显示 Target DPI 属性。使用此属性可优化性能和电池续航时间,或者针对特定的 DPI 设置。
Disabled 确保不应用缩放,并且游戏渲染屏幕原始分辨率。
Target DPI 设置游戏画面的分辨率。如果设备的屏幕原始 DPI 高于此值,则 Unity 会降低游戏画面分辨率以匹配此设置。缩放的计算公式为 min(Target DPI * Factor / Screen DPI, 1)FactorQuality 设置中的 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 提供的帧缓冲区。如果满足阻止应用程序渲染到系统帧缓冲区的条件,则应用程序将切换到屏幕外渲染并向设备控制台发出警告。

Supported Aspect Ratio

Android 平台的 Aspect Ratio Mode 设置
Android 平台的 Aspect Ratio Mode 设置

为设备设置 Aspect Ratio Mode。可以选择 Legacy Wide Screen (1.86)Native Aspect RatioCustom。选择 Custom 时,会出现 Up To 字段。

使用 Up To 属性设置自定义的最大屏幕宽度。仅当 Aspect Ratio Mode 设置为 Custom 时,此属性才可用。

Orientation

Android 平台的 Default Orientation 设置
Android 平台的 Default Orientation 设置

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 部分。

Allowed Orientations for Auto Rotation

仅当 Default Orientation 设置为 Auto Rotation 时才会显示此部分。

Android 平台的 Allowed Orientations for Auto Rotation Player 设置
Android 平台的 Allowed Orientations for Auto Rotation Player 设置

由于 Auto Rotation 会更改屏幕方向以匹配设备,您可能希望限制允许的屏幕方向(例如,将设备锁定为横向)。

通过选中本部分中的复选框,启用要允许的每个方向:

设置 功能
Portrait 允许纵向方向。
Portrait Upside Down 允许纵向上下翻转方向。
Landscape Right 允许横向右侧方向(主屏幕按钮位于左侧)。
Landscape Left 允许横向左侧方向(主屏幕按钮位于右侧)。

Other

Android 平台的其他 Resolution and Presentation 设置
Android 平台的其他 Resolution and Presentation 设置
设置 功能
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 ShowLargeInversed LargeSmallInversed Small

Splash Image

通用 Splash Screen 设置之上,可以使用 Virtual Reality Splash Image 设置来指定虚拟现实显示的自定义启动画面。

Android 平台播放器的启动画面设置
Android 平台播放器的启动画面设置

以下是通用 Splash Screen 设置,可以设置特定于 Android 的 Static Splash Image 选项。

Android Player 平台上的 Use Storyboard for Launch Screen 选项
Android Player 平台上的 Use Storyboard for Launch Screen 选项

使用 Android Splash Screen 属性可指定应该用于 Android 启动画面的纹理。启动画面图像的标准大小为 320x480。

Splash Scaling 下拉菜单中选择您希望 Unity 如何缩放启动画面以适合设备的屏幕。选项包括:

  • Center (only scale down)
  • Scale to Fit (letter-boxed)
  • Scale to Fill (cropped)

Other Settings

此部分可以自定义一系列选项,这些选项分为以下几组:

渲染

使用这些设置可自定义 Unity 针对 Android 平台渲染游戏的方式。

Android 平台的 Rendering 设置
Android 平台的 Rendering 设置
属性 功能
Color Space 选择应该用于渲染的颜色空间,选项为:GammaLinear
请参阅线性渲染概述以了解这两者之间的区别。
Auto Graphics API 禁用此选项可手动选择和重新排序图形 API。(OpenGL)。默认情况下会启用此选项,并且 Unity 会尝试 GLES3.2。如果设备不支持 GLES3.2,Unity 将回退到 GLES3.1、GLES3 或 GLES2。如果列表中只有 GLES3,则会出现其他复选框:Require ES3.1Require ES3.1+AEPRequire 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 时此设置无效。
Normal Map Encoding 选择 XYZ 或 DXT5nm 样式对法线贴图编码进行设置。此设置影响用于法线贴图的编码方案和压缩格式。DXT5nm 样式的法线贴图质量更高,但在着色器中解码成本更高。
Lightmap Streaming Enabled Whether to use Mipmap Streaming for lightmaps. Unity applies this setting to all lightmaps when it generates them.
Note: To use this setting, you must enable the Texture Streaming Quality setting.
Streaming Priority Set the priority for all lightmaps in the Mipmap Streaming system. Unity applies this setting to all lightmaps when it generates them.
Positive numbers give higher priority. Valid values range from –128 to 127.
Streaming Priority 定义在争用资源时的光照贴图 Mipmap 串流优先级。有效范围是 –127 到 128,其中正数表示更高的优先级。仅当选中 Lightmap Streaming Enabled 时,此设置才可用。要使用此值,请启用 Texture Streaming Quality 设置
Protect Graphics Memory 选中此框可强制仅通过受硬件保护的路径显示图形缓冲区。仅适用于支持该选项的设备。
Enable Frame Timing Stats 收集有关帧在 CPU 和 GPU 上花费的时间的统计信息。

Vulkan Settings

Android 平台的 Vulkan Player 设置
Android 平台的 Vulkan Player 设置
属性 功能
SRGB Write Mode 启用此选项可允许 Vulkan 渲染器上的 Graphics.SetSRGBWrite() 在帧期间切换 sRGB 写模式。启用此选项对性能有负面影响。
Number of swapchain buffers 将此选项设置为 2 表示双缓冲,设置为 3 表示三缓冲。双缓冲可能会对性能产生负面影响。
Acquire swaichain image late as possible 启用此选项可就在显示图像之前获取后备缓冲区图像。如果选择双缓冲,则这可能会提高性能,但在 Android 上应避免使用,因为它会引入额外的内存带宽成本。
在渲染期间应用显示旋转 启用此选项可按显示的原生方向执行所有渲染。这在许多设备上具有性能优势。有关更多信息,请参阅 Vulkan 交换链预轮换的相关文档。

Identification

Android 平台的 Identification 设置
Android 平台的 Identification 设置
属性 功能
Package Name 设置应用程序 ID,用于在设备和 Google Play 应用商店中唯一标识您的应用程序。标识符的基本结构是 com.CompanyName.AppName,也可以任意选择。iOS 和 Android 共享此设置。
Version 输入捆绑包的构建版本号,用于标识捆绑包的迭代(已发布或未发布)。版本以通用格式指定,该格式包含以点号分隔的数字的字符串(例如,4.3.2)。(在 iOS 和 Android 之间共享。)
Bundle Version Code 内部版本号。此数字仅用于确定一个版本是否比另一个版本更新,数字更大表示版本越新。这不是向用户显示的版本号;向用户显示的版本号由 versionName 属性设置。该值必须设置为整数,例如“100”。您可以根据需要定义,只要每个后续版本具有更高的数字即可。

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

如果启用了 Split APKs by target architecture,请将此数字保持在 100000 以下。每个 APK 必须具有唯一的版本代码,因此 Unity 为 ARMv7 添加 100000,为 ARM64 添加 200000。
Minimum API Level 运行应用程序所需的最低 Android 版本(API 级别)。
Target API Level 编译应用程序针对的目标 Android 版本(API 级别)。

Configuration

Android 平台的 Configuration 设置
Android 平台的 Configuration 设置
设置 功能
Scripting Backend 选择要使用的脚本后端。脚本后端确定 Unity 如何在项目中编译和执行 C# 代码。
Mono 将 C# 代码编译为 .NET 公共中间语言 (CIL) 并使用公共语言运行时执行该 CIL。有关更多信息,请参阅 Mono Project 网站。
IL2CPP 将 C# 代码编译为 CIL,将 CIL 转换为 C++,然后将该 C++ 编译为本机机器代码,该代码在运行时直接执行。请参阅 IL2CPP 以了解更多信息。
API Compatibility Level Choose which .NET APIs can be used in your project. This setting can affect compatibility with 3rd-party libraries. However, it has no effect on Editor-specific code (code in an Editor directory, or within an Editor-specific Assembly Definition).
Tip: If you are having problems with a third-party assembly, you can try the suggestion in the API Compatibility Level section below.
.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 位 x86 和 64 位 x86–64)。
注意:在 64 位环境中运行 Android 应用程序具有性能优势,且 64 位应用程序可以寻址超过 4 GB 的内存空间。| |Split APKs by target architecture (Experimental) ||启用此选项可为 Target Architectures 中选择的每个 CPU 架构创建单独的 APK。因此,Google Play 应用商店用户的下载文件将变小。这是 Google Play 应用商店的特色功能,在其他应用商店中可能无效。有关更多详细信息,请参阅多 APK 支持 (Multiple APK Support)。| |Target Devices ||指定允许运行 APK 的目标设备。| ||
All Devices_
允许 APK 在所有 Android 和 Chrome OS 设备上运行。
Phones and Tablets Only 允许 APK 在所有 Android 手机和平板电脑上运行,但不在 Chrome OS 设备上运行。
Chrome OS Devices Only 允许 APK 在 Chrome OS 设备上运行,但不在 Android 手机或平板电脑上运行。
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-PadSupports GamepadRequires Gamepad
Chrome OS Input Emulation Chrome OS 的默认行为是将鼠标和触控板输入事件转换为触摸屏输入事件。取消选中此设置以禁用默认行为。
Warn about App Bundle size 启用此选项可以在 Android App Bundle 超过特定阈值时收到警告。默认情况下会选择此选项,仅当在构建设置 (Build settings) 中启用了 Build App Bundle (Google Play) 选项时,才能配置此选项。
App Bundle size threshold 输入以 Mb 为单位的大小。当 App Bundle 超过此大小时,Unity 将显示警告。
Input Manager 使用传统的 Input 设置。
Input System (Preview) 使用较新的输入系统。输入系统作为此版本的预览包提供。要试用输入系统的预览版,请安装 InputSystem 包
Both 并排使用两个系统。

API Compatibility Level

You can choose your mono API compatibility level for all targets. Sometimes a 3rd-party .NET library uses functionality that’s outside of your .NET compatibility level. To understand what’s going on in such cases, and how to best fix it, try following these suggestions:

  1. Install ILSpy for Windows.
  2. Drag the .NET assemblies for the API compatibility level that you are having issues with into ILSpy. You can find these under Frameworks/Mono/lib/mono/YOURSUBSET/.
  3. 拖入第三方程序集。
  4. 右键单击第三方程序集并选择 Analyze
  5. 在分析报告中,检查 Depends on 部分。此报告以红色突出显示第三方程序集所依赖的但在您选择的 .NET 兼容性级别中不可用的任何内容。

Script Compilation

Android 平台的脚本编译设置
Android 平台的脚本编译设置
Setting Function
Scripting Define Symbols Set custom compilation flags. For more details, see the documentation on Platform dependent compilation.
Additional Compiler Arguments Add entries to this list to pass additional arguments to the Roslyn compiler. Use one new entry for each additional argument.
To create a new entry, press the ‘+’ button. To remove an entry, press the ‘-’ button.
When you have added all desired arguments, click the Apply button to include your additional arguments in future compilations.The Revert button resets this list to the most recent applied state.
Suppress Common Warnings Disable this setting to display the C# warnings CS0169 and CS0649.
Allow ‘unsafe’ Code Enable support for compiling ‘unsafe’ C# code in a pre-defined assembly (for example, Assembly-CSharp.dll).
For Assembly Definition Files (.asmdef), click on one of your .asmdef files and enable the option in the Inspector window that appears.
Use Deterministic Compilation Disable this setting to prevent compilation with the -deterministic C# flag. With this setting enabled, compiled assemblies are byte-for-byte identical each time they are compiled.
For more information, see Microsoft’s deterministic compiler option documentation.
Enable Roslyn Analyzers Disable this setting to compile user-written scripts without Roslyn analyzer DLLs that might be present in your project.
Use Roslyn Reference Assemblies Disable this setting to the compiler not to skip compilation reference assemblies when the metadata of the assembly does not change.

Optimization

Android 平台的 Optimization 设置
Android 平台的 Optimization 设置
设置 功能
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)。

Logging

选择在特定上下文中允许的日志记录类型。

Android 平台的 Logging 设置
Android 平台的 Logging 设置

选中运行脚本时 (ScriptOnly)、始终 (Full) 或从不 (None) 条件下对应于每个 Log Type(ErrorAssertWarningLogException)的复选框。

Legacy

启用 Clamp BlendShapes (Deprecated) 选项可在 SkinnedMeshRenderers 中钳制混合形状权重的范围。

Android 平台的 Legacy 设置
Android 平台的 Legacy 设置

Publishing Settings

使用 Publishing Settings 可配置 Unity 构建 Android 应用程序的方式。 若要打开 Publishing Settings,请转到 Edit > Project Settings,选择 Player,选择 Android 图标,然后打开 Publishing Settings 面板。

此部分介绍 Publishing Settings 面板的不同部分及其功能。这些资源包括:

Project Keystore
Project Key
Build
Minify
Split Application Binary

Android 发布面板
Android 发布面板

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

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

Project Keystore

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

使用 Project Keystore 设置可选择用于打开的项目的密钥库。加载密钥库时,Unity 会加载该密钥库中的所有密钥。 若要在打开的项目中加载和使用现有密钥库,请执行以下操作:

  1. 启用 Custom Keystore
  2. 打开 Select 下拉列表,选择 Browse,然后从文件系统中选择密钥库。
  3. 输入您的密钥库密码

如果没有现有密钥库,请将 Custom Keystore 保留为禁用状态。

Unity 使用调试密钥库对应用程序进行签名。 调试密钥库是一种工作密钥库。通过它可以对应用程序进行签名并在本地进行测试。但是,应用商店会拒绝以这种方式签名的应用程序。这是因为应用商店无法使用调试密钥库验证应用程序的有效性和所有权。

属性 描述
Custom Keystore 启用 Custom Keystore 可加载和使用现有密钥库。
Select 启用了 Custom Keystore 时,使用此设置可选择要使用的密钥库。Select 下拉列表中的分区下的密钥库存储在预定义专用位置中。有关更多详细信息,请参阅选择密钥库位置
路径 无需输入密钥库路径。Unity 会基于所选择的密钥库提供此路径。
Password 输入密钥库密码以加载所选的密钥库。

Project Key

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

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

Build

默认情况下,Unity 使用随 Unity 安装提供的 Android 清单、Gradle 模板和 Proguard 文件构建应用程序。使用 Android Publishing Settings 的 Build 部分可更改这些内容。

若要使用自定义 Android 清单、Gradle 模板或 Proguard 文件,请执行以下操作:

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

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

属性 描述
Custom Main Manifest Android LibraryManifest.xml 文件的可自定义版本。此文件包含有关 Android 应用程序的重要元数据。有关主/库清单的职责的更多信息,请参阅 Android 清单的相关文档。
Custom Launcher Manifest Android LauncherManifest.xml 文件的可自定义版本。此文件包含有关 Android 应用程序启动器的重要元数据。有关启动器清单的职责的更多信息,请参阅 Android 清单的相关文档。
Custom Main Gradle Template mainTemplate.gradle 文件的可自定义版本。此文件包含有关如何将 Android 应用程序构建为库的信息。有关更多信息,请参阅提供自定义 Gradle 模板的相关文档。
Custom Launcher Gradle Template launcherTemplate.gradle_ 文件的可自定义版本。此文件包含有关如何构建 Android 应用程序的说明。有关更多信息,请参阅 build.gradle 模板的相关文档。
Custom Base Gradle Template baseProjectTemplate.gradle 文件的可自定义版本。此文件包含在所有其他模板与 Gradle 项目之间共享的配置。有关更多信息,请参阅 build.gradle 模板的相关文档。
Custom Gradle Properties Template gradle.properties 文件的可自定义版本。此文件包含 Gradle 构建环境的配置设置。这包括:
- JVM(Java 虚拟机)内存配置。
- 允许 Gradle 使用多个 JVM 进行构建的属性。
- 用于选择工具进行缩小的属性。
- 用于在构建应用程序包时不压缩原生库的属性。
Custom Proguard File proguard.txt 文件的可自定义版本。此文件包含缩小过程的配置设置。如果缩小会移除一些应该保留的 Java 代码,则应添加规则以将该代码保留在此文件中。有关更多信息,请参阅缩小的相关文档。

Minify

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

在大多数情况下,仅将缩小应用于发布构建(而不是调试构建)是一种很好的做法。这是因为缩小需要时间,可能会使构建速度变慢。由于代码经过优化,它还会使调试更加复杂。

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

属性 描述
Use R8 默认情况下,Unity 使用 Proguard 进行缩小。启用此复选框可改为使用 R8。
Release 如果希望 Unity 在发布构建中缩小应用程序的代码,请启用此复选框。
Debug 如果希望 Unity 在调试构建中缩小应用程序的代码,请启用此复选框。

Split Application Binary

启用 Split Application Binary 选项可将输出包拆分为主包 (APK) 和扩展包 (OBB) 包。如果要发布大于 100 MB 的应用程序,则 Google Play 应用商店需要此功能。

XR Settings

注意:对 XR SDK 的内置支持已被弃用,在 Unity 的未来版本中将不再使用。请改用 Unity XR 插件系统。有关更多信息,请参阅 XR 插件架构

Android Player 的 XR Settings
Android Player 的 XR Settings
设置 功能
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 处理时间。



  • 5.5 版中的更新功能
  • 在 2017.3 版中添加了 Sustained Performance Mode 属性
  • 在 2018.1 版中添加了 .NET 4.x 运行时
  • 在 2018.2 版中添加了 Android Multiple APK 功能
  • 2019.1 中为 Android 添加了 OpenGL ES 3.2 支持 NewIn20191
  • 在 Unity 2019.1 中添加了输入系统预览
  • 在 Unity 2019.1 中添加了 Render outside safe area
  • 在 Unity 2019.2 中添加了 Warn about App Bundle size 选项
  • 在 Unity 2019.3 将 GPU Skinning 重命名为 Compute Skinning
  • 在 Unity 2019.3 中删除了 Vuforia
  • 在 Unity 2019.3 中已弃用对内置 XR SDK 的支持。NewIn20193
Unity Remote
Android 密钥库管理器