Unity3d:Android Player 设置

Unity3d:Android Player 设置
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

Android Player 设置

此页面详细介绍了 Android 平台的播放器设置。有关常规播放器设置的说明,请参阅播放器设置。

安卓播放器设置。
安卓播放器设置。

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

  • 图标
  • 分辨率和演示
  • 启动画面
  • 其他设置
  • 发布设置

图标

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

安卓图标设置。
安卓图标设置。
设置描述
适应的指定各种大小的纹理,以在运行 Android 8.0(API 级别 26)或更高版本的设备上表示您的应用。
指定各种大小的纹理,以在运行 Android 7.1(API 级别 25)或更高版本的设备上表示您的应用。
遗产指定各种大小的纹理,以在运行 Android 7.1(API 级别 25)之前的设备上表示您的应用。

分辨率和演示

使用“分辨率和演示”部分自定义屏幕外观的各个方面。

安卓的分辨率和演示设置。
安卓的分辨率和演示设置。
设置描述
全屏模式指定窗口在设备上的显示方式。这将在启动时设置默认窗口模式。
全屏窗口应用程序窗口填充设备的全屏本机分辨率。为了填充全屏窗口,Unity 会缩放应用程序内容。为了匹配输出设备的纵横比,Unity 可能会向渲染的输出添加黑条,以便内容不会拉伸。此过程称为信箱。在此模式下,导航栏始终处于隐藏状态。
窗口应用程序使用标准的非全屏可移动窗口。窗口的大小取决于应用程序的分辨率。在此模式下,默认情况下窗口可调整大小。要禁用此功能,请禁用可调整大小的窗口
可调整大小的窗口指示用户是否可以调整应用程序窗口的大小。
此设置在 Android 手机和平板电脑上的应用程序中启用多窗口功能。有关更多信息,请参阅 Google 的开发者文档
默认窗口宽度应用程序窗口的默认宽度(以像素为单位)。仅当“全屏模式”设置为“窗口”时,此选项才可用。
默认窗口高度应用程序窗口的默认高度(以像素为单位)。仅当“全屏模式”设置为“窗口”时,此选项才可用。
最小窗口宽度应用程序窗口的最小宽度(以像素为单位)。仅当“全屏模式”设置为“窗口”时,此选项才可用。
最小窗口高度应用程序窗口的最小高度(以像素为单位)。仅当“全屏模式”设置为“窗口”时,此选项才可用。
隐藏导航栏指示是否隐藏显示在窗口顶部的导航栏。
在安全区域之外渲染指示应用程序是否应使用所有可用的屏幕空间进行呈现,包括显示中被切出(凹口)的区域。有关更多信息,请参阅 Android 的显示剪切支持文档。
优化的帧节奏指示 Unity 是否应均匀分布帧以减小帧速率差异。启用此选项可创建更流畅的体验。

其他分辨率和演示文稿设置分组在以下部分下:

  • 分辨率缩放
  • 支持的纵横比
  • 取向
  • 允许的自动旋转方向
  • 其他

分辨率缩放

使用“分辨率缩放”部分自定义与屏幕分辨率缩放相关的设置。使用低于设备原始分辨率的分辨率可以提高性能和电池寿命。

安卓的分辨率缩放设置。
安卓的分辨率缩放设置。
设置描述
分辨率缩放模式指定应用程序是否以及如何缩放其分辨率。您可以将缩放比例设置为等于或低于本机屏幕分辨率。使用较低的分辨率可以提高性能和电池寿命。
禁用不应用分辨率缩放,应用程序呈现为设备的本机屏幕分辨率。
固定DPI使用目标 API 应用分辨率缩放。使用它来优化性能和电池寿命或定位特定的 DPI 设置。
目标新闻部应用程序的分辨率。如果设备的本机屏幕 DPI 高于此值,Unity 会降低应用程序的分辨率以匹配此设置。要计算比例,Unity 使用以下方法:

其中“因子”是质量”设置中的分辨率缩放固定 DPI 因子注意:仅当将“分辨率缩放模式”设置为“固定 DPI”时,此选项才会显示。
min(Target DPI * Factor / Screen DPI, 1)
调整窗口大小时重置分辨率指示在本机窗口大小更改时是否将屏幕分辨率设置为新的本机窗口大小。如果将“分辨率缩放模式”设置为“固定 DPI”,Unity 将根据“固定 DPI”属性重新计算分辨率。
闪光类型控制是否使用 blit 将最终图像呈现到屏幕上。使用 blit 与大多数设备兼容,但通常比不使用 blit 慢。
总是Unity 渲染到屏幕外缓冲区,然后使用 blit 将缓冲区的内容复制到设备的帧缓冲区。这与大多数设备兼容,但通常比不使用 blit 慢。
从不Unity 渲染到设备操作系统提供的帧缓冲区。如果此操作失败,应用程序会将一次性警告打印到设备日志中。这通常比使用 blit 更快,但它并不兼容所有设备。
汽车如果可能,Unity 会渲染到设备操作系统提供的帧缓冲区。如果此操作失败,Unity 会将警告打印到设备控制台,并使用 blit 将最终图像渲染到屏幕上。

支持的纵横比

使用“支持的纵横比”部分自定义与要支持的设备纵横比相关的设置。

安卓的分辨率缩放设置。
安卓的分辨率缩放设置。
设置描述
宽高比模式指定应用程序支持的最大纵横比。如果设备的纵横比大于此纵横比,Unity 将对应用程序使用此纵横比并添加黑条,以便应用程序不会拉伸。
传统宽屏 (1.86)该应用程序支持高达Android传统宽屏纵横比的纵横比。
原生纵横比该应用程序支持高达Android本机纵横比的纵横比。
习惯应用程序支持的纵横比最高可达您在“最多”中设置的纵横比。
  为止自定义最大纵横比。

仅当您将“纵横比模式”设置为“自定义”时,此设置才会显示。

取向

使用“方向”部分自定义与设备上应用程序的方向相关的设置。

安卓的方向设置。
安卓的方向设置。

Default Orientation 下拉菜单中选择游戏的屏幕方向:

设置描述
默认方向指定应用程序使用的屏幕方向。

注意:Unity 会在 Android 和 iOS 之间共享您为此设置的值。
肖像应用程序使用纵向屏幕方向,其中应用程序窗口的底部与设备屏幕的底部对齐。
人像颠倒应用程序使用纵向屏幕方向,其中应用程序窗口的底部与设备屏幕的顶部对齐。
景观右应用程序使用横向屏幕方向,其中应用程序窗口的右侧与设备屏幕的底部对齐。
横向左侧应用程序使用横向屏幕方向,其中应用程序窗口的右侧与设备屏幕的顶部对齐。
自动旋转屏幕可以旋转到您在“允许的自动旋转方向”部分中指定的任何方向。

允许的自动旋转方向

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

仅当将“默认方向”设置为“自动旋转”时,才会显示此部分。

安卓自动旋转设置的允许方向。
安卓自动旋转设置的允许方向。
设置描述
肖像指示应用程序是否支持纵向屏幕方向,其中应用程序窗口的底部与设备屏幕的底部对齐。
人像颠倒指示应用程序是否支持纵向屏幕方向,其中应用程序窗口的底部与设备屏幕的顶部对齐。
景观右指示应用程序是否支持横向屏幕方向,其中应用程序窗口的右侧与设备屏幕的底部对齐。
横向左侧指示应用程序是否支持横向屏幕方向,其中应用程序窗口的右侧与设备屏幕的顶部对齐。

其他

“分辨率和演示”部分还包含以下常规设置。

安卓的其他分辨率和演示设置。
安卓的其他分辨率和演示设置。
设置描述
使用 32 位显示缓冲区指示显示缓冲区是否保存 32 位颜色值而不是 16 位颜色值。如果看到条带,或在后期处理效果中需要 Alpha 值,请启用此设置。某些后期处理效果需要这样做,因为它们以与显示缓冲区相同的格式创建渲染纹理
禁用深度和模具指示是否禁用深度和模具缓冲区。
通过本机 UI 呈现指示是在 Android 还是 iOS 上的本机 UI 之上呈现。要使此设置生效,请将摄像机的清除标志设置为使用 alpha 值小于 1 的纯色。
显示加载指示器指定加载指示器是否显示以及如何显示。
不显示不显示加载指示器。
出现一个大的加载指示器。
倒置大出现一个带有反转颜色的大加载指示器。
出现一个小的加载指示器。
反转小出现一个颜色反转的小加载指示器。

启动画面

使用“虚拟现实启动画面”设置为虚拟现实显示器选择自定义闪光图像。有关常见初始屏幕设置的信息,请参阅初始屏幕。

虚拟现实的初始屏幕设置。
虚拟现实的初始屏幕设置。

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

安卓的初始屏幕设置。
安卓的初始屏幕设置。
设置描述
图像指定应用程序用于 Android 初始屏幕的纹理。初始屏幕图像的标准大小为 320x480。
缩放指定如何缩放初始图像以适合屏幕。
居中(仅缩小)以原始大小绘制图像,除非它太大,在这种情况下,Unity 会缩小图像以适合。
缩放以适合(信箱)缩放图像,使较长的尺寸完全适合屏幕大小。Unity 以黑色填充较短维度中两侧周围的空白区域。
缩放以填充(裁剪)缩放图像,使较短的尺寸完全适合屏幕大小。Unity 在较长的维度上裁剪图像。

其他设置

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

  • Rendering
  • Vulkan Settings
  • Identification
  • Configuration
  • Shader Variant Loading
  • Optimization
  • Logging
  • Legacy

渲染

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

Android 平台的 Rendering 设置
Android 平台的 Rendering 设置
财产描述
色彩空间选择 Unity 用于渲染的颜色空间:伽玛或线性。有关两者之间区别的说明,请参阅线性渲染概述
• Gamma:Gamma 色彩空间通常用于计算旧硬件上的照明,对于帧缓冲格式,限制为每通道 8 位。即使今天的监视器是数字的,它们仍可能采用伽马编码信号作为输入。
• 线性:线性色彩空间渲染可提供更精确的结果。选择在线性色彩空间中工作时,编辑器默认使用 sRGB 采样。如果您的纹理位于线性色彩空间中,则需要在线性色彩空间中工作并禁用每个纹理的 sRGB 采样。
自动图形接口禁用此选项可手动选取和重新排序图形 API。默认情况下,此选项处于启用状态,Unity 会尝试使用 Vulkan。如果设备不支持 Vulkan,Unity 将回退到 GLES3.2、GLES3.1 或 GLES3.0。还有三个附加复选框可用于配置最低 OpenGL ES 3.x 次要版本:需要 ES3.1、要求 ES3.1+AEP 和要求 ES3.2
重要提示:仅当禁用自动图形 API 时 GLES3 不在 API 列表中时,Unity 才会将 GLES3/GLES1.3/AEP/2.2 要求添加到您的 Android 应用清单中。仅在这种情况下,您的应用程序不会显示在 Google Play 商店中不受支持的设备上。
色域您可以添加或删除 Android 平台用于渲染的色域。单击加号 (+) 图标以查看可用色域的列表。色域定义给定设备(如监视器或屏幕)可用的可能颜色范围。sRGB 色域是默认(也是必需的)色域。当定位具有宽色域显示器的设备时,请使用 DisplayP3 来利用完整的显示功能。
多线程渲染启用此选项可将图形 API 调用从 Unity 的主线程移动到单独的工作线程。这有助于提高主线程上 CPU 使用率较高的应用程序的性能。
静态批处理启用此选项以使用静态批处理。
动态批处理启用此选项可在生成上使用动态批处理(默认启用)。
注: 当可编程渲染管线处于活动状态时,动态批处理不起作用,因此仅当可编程渲染管线资源图形设置中未设置任何内容时,此设置才可见。
计算外观启用此选项可启用 DX11/ES3 GPU 计算外观,从而释放 CPU 资源。
图形职位启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 内核上运行的工作线程。这旨在减少在主线程上花费的时间,这通常是一个瓶颈。Camera.Render
纹理压缩格式在ASTC,ETC2和ETC(ETC1代表RGB,ETC2代表RGBA)之间进行选择。有关如何选择正确格式的详细信息,请参阅纹理压缩格式概述
有关纹理压缩设置如何与“构建设置”中的纹理压缩设置交互的更多详细信息,请参阅纹理压缩设置
法线贴图编码选择 XYZ 或 DXT5nm 样式以设置法线贴图编码。这会影响用于法线贴图的编码方案和压缩格式。DXT5nm 风格的法线贴图质量更高,但在着色器中解码的成本更高。
光照贴图编码选择“正常质量”或“高质量”以设置光照贴图编码。此设置会影响光照贴图的编码方案和压缩格式。
光照贴图流式处理是否将 Mipmap 流送用于光照贴图。Unity 在生成光照贴图时会将此设置应用于所有光照贴图。
注: 要使用此设置,您必须启用“纹理流处理质量”设置。
  流式处理优先级 Mipmap 流送系统中的所有光照贴图设置优先级。Unity 在生成光照贴图时会将此设置应用于所有光照贴图。
正数表示更高的优先级。有效值范围为 –128 到 127。
帧计时统计信息启用此属性可收集 CPU 和 GPU 帧时间统计信息。将其与动态分辨率相机设置结合使用,以确定应用程序是受 CPU 还是 GPU 限制。
虚拟纹理指示是否启用虚拟纹理
注意:虚拟纹理与 Android 不兼容。
着色器精度模型控制着色器中使用的采样器的默认精度。有关更多详细信息,请参阅着色器数据类型和精度
360 度立体捕捉指示 Unity 是否可以捕获立体 360 度图像和视频。有关详细信息,请参阅立体声 360 图像和视频捕获
注意:360 度立体拍摄与 Android 不兼容。

伏尔坎设置

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

鉴定

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

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

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

配置

Android 平台的 Configuration 设置
Android 平台的 Configuration 设置
财产描述
脚本后端选择要使用的脚本后端。脚本后端确定 Unity 如何在项目中编译和执行 C# 代码。
将 C# 代码编译为 .NET 公共中间语言 (CIL),并使用公共语言运行库执行该 CIL。有关更多信息,请参阅 Mono 项目网站。
IL2CPP将 C# 代码编译为 CIL,将 CIL 转换为C++然后将该C++编译为本机机器代码,该代码直接在运行时执行。有关更多信息,请参阅 IL2CPP
接口兼容级别选择可在项目中使用的 .NET API。此设置可能会影响与第三方库的兼容性。但是,它对特定于编辑器的代码(编辑器目录中或特定于编辑器的程序集定义中的代码)没有影响。
提示:如果您在使用第三方程序集时遇到问题,可以尝试下面的 API 兼容性级别部分中的建议。
.Net 2.0.Net 2.0 库。最大的 .net 兼容性,最大的文件大小。已弃用的 .NET 3.5 运行时的一部分。
.Net 2.0 子集完全 .net 兼容性的子集,较小的文件大小。已弃用的 .NET 3.5 运行时的一部分。
.Net Standard 2.0 .NET 标准 2.0 兼容。生成较小的版本,并具有完整的跨平台支持。
.Net 4.x与.NET Framework 4兼容(其中包括.NET Standard 2.0配置文件中的所有内容以及其他API)。使用访问 .NET 标准 2.0 中未包含的 API 的库时,请选择此选项。生成更大的版本,并非所有平台都支持任何其他可用的 API。有关更多信息,请参见引用其他类库程序集
C++编译器配置选择编译 IL2CPP 生成的代码时使用的C++编译器配置。
注: 除非“脚本后端”设置为 IL2CPP,否则此属性处于禁用状态。
使用增量气相色谱启用此选项以使用增量垃圾回收器,该回收器将垃圾回收分散到多个帧上,以减少与 gc 相关的帧持续时间峰值。
程序集版本验证指示 Mono 是否验证强名称程序集中的类型。
将其他音频源静音如果您希望 Unity 应用程序停止在后台运行的应用程序中的音频,请启用此选项。否则,来自后台应用程序的音频将继续与您的 Unity 应用程序一起播放。
目标体系结构选择要允许应用程序运行的 CPU(32 位 ARM、64 位 ARM、32 位 x86 和 64 位 x86–64)。
注意:在 64 位环境中运行 Android 应用具有性能优势,64 位应用可以处理超过 4 GB 的内存空间。
按目标架构拆分 APK(实验性)启用此选项可为目标架构中选择的每个 CPU 架构创建单独的 APK。这使得Google Play商店用户的下载大小更小。这主要是Google Play商店的功能,可能无法在其他商店中使用。有关更多详细信息,请参阅多个APK支持
目标设备指定允许运行 APK 的目标设备。
所有设备APK可以在所有Android和Chrome OS设备上运行。
仅限手机和平板电脑APK 可以在安卓手机和平板电脑上运行,但不能在 Chrome 操作系统设备上运行。
仅限 Chrome 操作系统设备APK 可以在 Chrome 操作系统设备上运行,但不能在安卓手机或平板电脑上运行。
安装位置指定设备上的应用安装位置(有关详细信息,请参阅 Android 开发人员有关安装位置的文档
自动让操作系统决定。用户将能够来回移动应用程序。
首选外部如果可能,将应用程序安装到外部存储(SD 卡)。操作系统不保证;如果不可能,该应用程序将安装到内部存储器。
力内部强制将应用程序安装到内部存储器。用户将无法将应用移动到外部存储。
上网选择是否始终将网络 () 权限添加到 Android 应用清单,即使您未使用任何网络 API。默认情况下,对于开发版本设置为“需要”。INTERNET
汽车仅当您使用网络 API 时,才添加互联网访问权限。
需要始终添加互联网访问权限。
写入权限选择是否启用对外部存储(例如 SD 卡)的写入访问权限,并向 Android 应用清单添加相应的权限。对于开发版本,默认情况下设置为外部(SDCard)。
内部仅授予对内部存储的写入权限。
外部(SD卡)启用对外部存储的写入权限。
遮挡时的滤镜触摸启用此选项可放弃当另一个可见窗口覆盖 Unity 应用程序时收到的触摸。这是为了防止窃听劫持。
持续性能模式启用此选项可在较长时间内设置可预测且一致的设备性能级别,而无需热限制。启用此设置时,整体性能可能会降低。基于 Android 持续性能 API
最大 Java 堆大小将最大 Java 堆大小设置为要构建的用户(以兆字节为单位)。默认值为 4096。
低精度定位启用此选项可改为将低精度值用于 Android 位置 API。
Chrome OS 输入仿真Chrome 操作系统的默认行为是将鼠标和触摸板输入事件转换为触摸屏输入事件。取消选中此设置以禁用默认行为。
安卓电视兼容性启用此选项可将应用程序标记为与安卓电视兼容。
  安卓游戏启用此选项可将输出包 (APK) 标记为游戏而不是常规应用程序。
  安卓游戏手柄支持级别选择应用程序为游戏手柄提供的支持级别。选项包括“与方向键配合使用”、“支持游戏手柄”和“需要游戏手柄”。
有关应用捆绑包大小的警告启用此选项可在 Android 应用包的大小超过特定阈值时收到警告。默认情况下,此选项处于选中状态,只有在“构建”设置中启用“构建应用程序捆绑包 (Google Play)”选项时,才能对其进行配置。
  应用捆绑包大小阈值输入大小(以 MB 为单位)。当您的应用包超过此大小时,Unity 将显示警告。
主动输入处理选择处理用户输入的方式。
输入管理器(旧)使用默认的输入窗口。
输入系统(预览版)使用较新的输入系统。输入系统作为此版本的预览包提供。若要尝试预览输入系统,请安装输入系统包
并排使用两个系统。

接口兼容级别

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

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

脚本编译

Android 平台的脚本编译设置
Android 平台的脚本编译设置
设置功能
脚本定义符号设置自定义编译标志。有关更多详细信息,请参阅有关平台相关编译的文档。
其他编译器参数将条目添加到此列表以将其他参数传递给 Roslyn 编译器。为每个附加参数使用一个新条目。
要创建新条目,请按“+”按钮。要删除条目,请按“-”按钮。
添加所有所需参数后,单击“应用”按钮以在将来的编译中包含其他参数。“还原”按钮将此列表重置为最近应用的状态。
禁止显示常见警告禁用此设置以显示 C# 警告 CS0169 和 CS0649
允许“不安全”代码启用对在预定义程序集中编译“不安全”C# 代码的支持(例如,)。
对于程序集定义文件 (),单击其中一个文件,然后在出现的“检查器”窗口中启用该选项。
Assembly-CSharp.dll.asmdef.asmdef
使用确定性编译禁用此设置以防止使用 -deterministic C# 标志进行编译。启用此设置后,每次编译已编译的程序集时,它们都是逐字节相同的。
有关详细信息,请参阅 Microsoft 的确定性编译器选项文档
启用罗斯林分析仪禁用此设置以编译用户编写的脚本,而不使用项目中可能存在的 Roslyn 分析器 DLL。
使用 Roslyn 引用程序集对编译器禁用此设置,以便在程序集的元数据未更改时不跳过编译引用程序集。

优化

Android 平台的 Optimization 设置
Android 平台的 Optimization 设置
财产描述
预烘焙碰撞网格启用此选项可在构建时将碰撞数据添加到网格体。
使加载的着色器保持活动状态启用后,无法卸载着色器。有关详细信息,请参阅着色器加载
预加载资产为播放器设置要在启动时加载的资产数组。
若要添加新资源,请增加 Size 属性的值,然后在出现的新元素框中设置对要加载的资产的引用。
AOT 编译选项提前 (AOT) 编译的其他选项。这有助于优化构建的 iOS 播放器的大小
带状引擎代码如果您希望 Unity 链接器工具删除项目不使用的 Unity 引擎功能的代码,请启用此选项。此设置仅适用于 IL2CPP 脚本后端。

大多数应用不会使用每个可用的 DLL。此选项会去除应用不用于减小生成播放器大小的 DLL。如果您的应用使用的是一个或多个类,这些类通常会在当前设置下被剥离,则当您尝试构建应用时,Unity 会显示一条调试消息。
受控剥离水平选择 Unity 如何去除未使用的托管 (C#) 代码。选项包括禁用的低”、“”和“高”。

Unity 构建应用时,Unity 链接器进程可以从项目使用的托管 DLL 中删除未使用的代码。剥离代码可以使生成的可执行文件明显变小,但有时可能会意外删除正在使用的代码。有关这些选项的更多信息,请参见有关托管代码剥离的文档。

有关使用 IL2CPP 进行字节码剥离的信息,请参阅有关使用 IL2CPP 进行托管字节码剥离的文档。
启用内部探查器(已弃用)启用此选项可在测试项目时从 Android SDK 的广告博客输出中的设备获取分析器数据。这仅在开发版本中可用。
顶点压缩选择要在顶点压缩方法下为压缩网格设置的通道,默认情况下,该方法设置为“混合”。这会影响项目中的所有网格。通常,顶点压缩用于减小内存中网格数据的大小、减小文件大小并提高 GPU 性能。有关如何配置顶点压缩以及此设置的限制的信息,请参阅 [压缩网格]。
优化网格数据选择此选项可以从构建中使用的网格中剥离未使用的顶点属性。
这减少了网格中的数据量,这可能有助于减少构建大小、加载时间和运行时内存使用量。但是,如果启用了此设置,则必须记住不要在运行时更改材质或着色器设置。有关详细信息,请参阅 PlayerSettings.stripUnusedMeshComponents
纹理 MipMap 剥离启用此选项可为所有平台启用 mipmap 剥离,这会在构建时从纹理中剥离未使用的 mipmap。Unity 通过将 mipmap 的值与当前平台的质量设置进行比较来确定未使用的 mipmap。如果从当前平台的每个质量设置中排除了 mipmap 值,则 Unity 会在构建时从构建中删除这些 mipmap。如果 QualitySettings.masterTextureLimit 设置为已剥离的 mipmap 值,Unity 会将该值设置为尚未剥离的最接近的 mipmap 值。

伐木

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

Android 平台的 Logging 设置
Android 平台的 Logging 设置
  • 从可用选项中选择首选日志记录方法。
  • 根据所需的日志记录类型,选中与每种日志类型(错误断言警告日志异常)对应的框。例如:
  • 脚本:仅在运行脚本时记录。
  • 完整:始终记录。
  • :不记录任何日志。有关详细信息,请参阅堆栈跟踪日志记录。

遗产

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

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

发布设置

使用 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 的相关文档。

项目密钥库

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

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

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

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

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

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

项目密钥

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

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

默认情况下,Unity 使用 Unity 安装提供的清单文件、Gradle 模板和 Proguard 文件构建应用程序。使用 Android 发布设置的“内部版本”部分进行更改。

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

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

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

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

缩小

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

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

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

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

拆分应用程序二进制文件

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

3D建模学习工作室整理翻译,转载请标明出处!

上一篇:Unity3d:Android 环境设置 (mvrlink.com)

下一篇:Unity3d:密钥库管理器窗口参考 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号