Auto Graphics API
禁用此选项可手动选择和重新排序图形 API。此选项在默认情况下为启用状态,并包含
Metal
。还可以添加
OpenGLES2
和
OpenGLES3
作为不支持 Metal 的设备的后备选项;但是,这两个选项均已弃用,不应再使用。
Color Gamut
可以为 iOS 平台添加或删除
色域
以用于渲染。单击加号 (+) 图标查看可用色域的列表。色域定义了给定设备(如监视器或屏幕)可以使用的所有颜色范围。sRGB 色域是默认色域(也是必需色域)。
如果目标设备是具备宽色域显示屏的新款 iOS 设备,请使用
DisplayP3
充分利用显示能力。对于旧设备,使用
Metal Editor Support
作为后备选项。
Metal Editor Support
启用此选项可在 Unity Editor 中使用 Metal API,并释放更快速的
着色器
迭代以定位 Metal API。
注意:
选中或取消选中此选项需要您重新启动 Editor,更改才能生效。
Metal API Validation
如果需要调试着色器问题,请启用此选项。仅当选中
Metal Editor Support
复选框时,才会显示此选项。
注意:
验证会提高 CPU 使用率,因此仅在进行调试时使用。
Metal Write-Only Backbuffer
允许在非默认设备方向上提高性能。此属性会在后缓冲区上设置
frameBufferOnly
标志,因此会阻止从后缓冲区的回读,但可实现一定程度的驱动程序优化。
Force hard shadows on Metal
启用此选项可强制 Unity 在 Metal 中对阴影使用点采样。这样会降低阴影质量,但可以提高性能。
Memoryless Depth
选择何时使用
无记忆渲染纹理
。无记忆渲染纹理在渲染时临时存储在区块内存中,而不是存储在 CPU 或 GPU 内存中。这可减少应用程序的内存使用量,但您无法读取或写入这些渲染纹理。
注意:
只有 iOS、tvOS 10.0+ Metal 和 Vulkan 上支持无记忆渲染纹理。在其他平台上,渲染纹理受读/写保护并存储在 CPU 或 GPU 内存中。
Unused
从不使用无记忆帧缓冲区深度。
Forced
始终使用无记忆帧缓冲区深度。
Automatic
让 Unity 决定何时使用无记忆帧缓冲区深度。
Multithreaded Rendering
启用此选项可使用多线程渲染。
Static Batching
启用此选项可使用静态批处理。有关更多信息,请参阅
绘制调用批处理
。
Dynamic Batching
启用此选项可使用动态批处理(默认情况下会启用此选项)。有关更多信息,请参阅
绘制调用批处理
。
注意:
当
可编程渲染管线
激活时,动态批处理无效,所以仅当
Graphics
设置中的
Scriptable Render Pipeline Asset
为空时,此设置才可见。
Compute Skinning
启用此选项可使用 Metal GPU 计算蒙皮,这样可以释放 CPU 资源。要了解有关 GPU 计算蒙皮的更多信息,请参阅
关于骨骼动画的 Wikipedia 页面
。
Graphics Jobs (Experimental)
启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 核心上运行的工作线程。这可以减少主线程上
Camera.Render
所花费的时间,该时间通常成为瓶颈。
注意:
此功能是实验性的。可能无法为您的项目带来性能提升,并可能导致不稳定。
Unity 目前仅在使用
Vulkan
时支持图形作业 (Graphics Jobs),使用
OpenGL
ES 时此设置无效。
Lightmap Encoding
选择
Low Quality
、
Normal Quality
或
High Quality
来设置光照贴图编码。此设置影响光照贴图的编码方案和压缩格式。
Lightmap Streaming Enabled
启用此选项可根据需要仅加载光照贴图 Mipmap 以渲染当前摄像机。此值适用于生成的光照贴图纹理。
注意:
要使用此设置,必须启用
Texture Streaming Quality
设置。
Streaming Priority
仅当启用光照贴图串流 (Lightmap Streaming) 时,才会显示此选项。设置光照贴图 Mipmap 串流优先级以解决资源冲突。Unity 将这些生成的值应用于光照贴图纹理。
正数提供更高的优先级。有效值范围为 –128 到 127。
Enable Frame Timing Stats
启用此选项可收集 CPU/GPU 帧时序统计信息。
Bundle Identifier
输入您正在构建的应用程序的资源调配配置文件。标识符的基本结构是
com.CompanyName.ProductName
。此结构可能会根据您居住的国家/地区而有所不同,因此始终默认为 Apple 为您的开发者帐户提供的字符串。您的
ProductName
已在您的资源调配证书中设置。
此值在关联的
info.plist
文件中显示为
CFBundleIdentifier
。有关更多信息,请参阅 Apple 开发者文档的
CFBundleIdentifier
部分。
注意:
此设置会影响 iOS、tvOS 和 Android。
Version
输入捆绑包的 release-version-number 字符串(例如,4.3.6)。
此值在关联的
info.plist
文件中显示为
CFBundleShortVersionString
。有关更多信息,请参阅 Apple 开发者文档的
CFBundleShortVersionString
部分。
Build
输入此应用程序版本的构建版本号。
此值在关联的
info.plist
文件中显示为
CFBundleVersion
。有关更多信息,请参阅 Apple 开发者文档的
CFBundleVersion
部分。
Signing Team ID
输入您的 Apple Developer Team ID。您可以在 Apple 开发者网站上的
Xcode Help
下找到此信息。这将为生成的 Xcode 项目设置 Team ID,从而允许开发者使用
Build and Run
功能。必须输入 Apple Developer Team ID 才能为应用程序自动签名。
有关更多信息,请参阅 Apple 开发者文档的
创建团队资源调配配置文件 (Creating Your Team Provisioning Profile)
部分。
Automatically Sign
启用此选项可指示 Xcode 自动为您的构建版本签名。
Scripting Backend
脚本后端确定 Unity 如何在项目中编译和执行 C# 代码。对于 iOS,此设置默认为 IL2CPP,并且无法更改。
IL2CPP 将 C# 代码编译为 CIL,将 CIL 转换为 C++,然后将该 C++ 编译为本机机器代码,该代码在运行时直接执行。有关更多信息,请参阅
IL2CPP
的文档。
由 IL2CPP 脚本后端生成的 C++ 代码可以逐步更新,从而允许增量式 C++ 构建系统仅编译更改的源文件。这种方式可以显著降低迭代次数。
API Compatibility Level
兼容性级别确定您可以在项目中使用哪些 .NET API。此设置可能会影响与第三方库的兼容性。
提示
:如果您遇到第三方程序集的问题,可以尝试下文的
API Compatibility Level
部分中的建议。
.Net Standard 2.0
兼容
.NET Standard 2.0
。生成较小的构建并具有完整的跨平台支持。
.Net 4.x
如果使用的库需要访问 .NET Standard 2.0 中未包含的 API,请选择此选项。兼容 .NET Framework 4(包括 .NET Standard 2.0 配置文件中的所有内容以及其他 API)。
生成更大的构建版本,并且某些可用的其他 API 可能并不是在所有平台上都受支持。有关更多信息,请参阅
引用其他类库程序集
的文档。
C++ Compiler Configuration
在编译 IL2CPP 生成的代码时使用的 C++ 编译器配置。对于 iOS,此设置默认为 Release,并且无法更改。
Use incremental GC
使用增量式垃圾回收器,这种垃圾回收器将垃圾收集工作分布在多个帧上,因此可以在帧持续时间中减少与垃圾收集相关的峰值。有关更多信息,请参阅
自动内存管理
的文档。
API Compatibility Level
可为所有目标选择 mono API 兼容性级别。有时,第三方 .NET 库会使用 .NET 兼容性级别之外的功能。如果您使用的是 Windows,则可以使用第三方软件 Reflector 来了解可能发生的问题以及如何修复问题。请遵循以下步骤:
1.安装适用于 Windows 的
Reflector
。
2.将出现问题的相关 API 兼容性级别的 .NET 程序集拖到 Reflector 中。这些程序集位于
Frameworks/Mono/lib/mono/YOURSUBSET/
下。
3.拖入第三方程序集。
4.右键单击第三方程序集并选择
Analyze
。
5.在分析报告中,检查
Depends on
部分。在此部分中会以红色突出显示第三方程序集所依赖的但在您选择的 .NET 兼容性级别中不可用的任何内容。
Apple 特定信息
Accelerometer Frequency
定义加速度计采样的频率。此频率可以设置为
15Hz
、
30Hz
、
60Hz
和
100Hz
。或者,选择
Disbaled
以忽略加速度计。
Mute Other Audio Sources
如果希望您的应用程序从后台运行的其他应用程序中停止音频,请启用此选项。否则,后台音频会继续与您的应用程序一起播放。
Prepare iOS for Recording
启用此选项可初始化麦克风录音 API。这会降低录音延迟,但也会通过耳机重新传送 iPhone 音频输出。
Force iOS Speakers when Recording
启用此选项可通过内置扬声器发送手机的音频输出,即使插入耳机和录音也是如此。
Requires Persistent WiFi
启用此选项可要求 Wi-Fi 连接。iOS 在应用程序运行时保持有效的 Wi-Fi 连接。
Allow downloads over HTTP (nonsecure)
启用此选项可允许通过 HTTP 下载内容。默认且推荐使用的文件传输协议为 HTTPS,这种协议更加安全。
Supported URL schemes
支持的 URL 方案
列表。
要添加新方案,请增大
Size
属性的值,然后在出现的新
Element
框中设置对要加载的资源的引用。
Target SDK
选择应用程序所针对的 SDK。选项包括
Device SDK
和
Simulator SDK
。
注意:
请务必选择正确的 SDK。例如,如果在 Unity 中选择 Device SDK 并在 Xcode 中以 Simulator 为目标,那么构建将失败。
Target minimum iOS Version
选择运行应用程序所需要的最低 iOS 版本。
Enable ProMotion Support
启用此选项可在 ProMotion 显示屏上允许高频刷新率 (120 Hz)。这可能会导致您的应用程序消耗更多的电池电量。
Requires ARKit support
启用此选项可在应用程序发布到 App Store 时将目标设备限制为 iPhone 6s/iOS 11 或更新款的设备。
Automatically add capabilities
启用此选项后,Unity 会生成一个
entitlements.plist
文件,并为应用程序所实现的 iOS API(例如 Game Center 或 Notifications)添加功能。有关更多信息,请参阅 Apple 开发者文档的
授权 (Entitlements)
部分。
Defer system gestures on edges
选择一个或多个边缘,用户必须轻扫两次相应的边缘才能作为系统手势。选项包括
Top Edge
、
Left Edge
、
Bottom Edge
和
Right Edge
Hide home button on iPhone X
启用此选项可在应用程序运行时隐藏 iPhone X 设备上的主屏幕按钮。
Render Extra Frame on Pause
启用此选项可在应用程序暂停时逐一发出其他帧。这允许您的应用程序显示图形,用于指示应用程序进入后台时的暂停状态。
Enable Custom Background Behaviors
选择当用户按下主屏幕按钮以将应用程序送入后台时允许该应用程序执行的操作。有关示例,请参阅
BackgroundFetch
Bitbucket 项目。选项为:
-
Audio, AirPlay, PiP
-
Location updates
-
Voice over IP
-
Newsstand downloads
-
External accessory communication
-
Uses Bluetooth LE accessories
-
Act as a Bluetooth LE accessory
-
Background fetch
-
Remote notifications
Variant map for app slicing
展开 Variant map for app slicing 部分可查看脚本中配置的变体名称列表。有关变体的更多信息,请参阅
应用程序切片
。
__注意:__如果未显示该部分,请确保已启用
Use on Demand Resource
属性。
可以使用加号 (+) 和减号 (-) 图标添加和删除新变体。还可以从列表中选择变体,并在 Variant settings 下查看或修改其设置。对于任何的这些设置(
Variant name
除外),如果选择
Custom value
,则会在其下方显示一个附加属性,然后可在其中输入要使用的值:
Graphics
选择要使用的
Metal 框架
。选项包括
Any_(默认值)、
Metal1v2
、
Metal2v2
、
Metal2v3
、
Metal3v1
、
Metal3v2
、
Metal4v1_ 和
Custom value
。
有关更多信息,请参阅 Apple 开发者文档的
Metal
部分。
Display color space
选择要使用的色域。选项包括
Any_(默认值)、
sRGB
、
DisplayP3_ 和
Custom value
。
Allow ‘unsafe’ Code
允许在预定义的程序集(例如,
Assembly-CSharp.dll
)中编译
“不安全”的 C# 代码
。
对于程序集定义文件 (
.asmdef
),请单击其中一个
.asmdef
文件,并在这个文件的 Inspector 窗口中启用该选项。
Active Input Handling
选择您希望如何处理来自用户的输入。
Input Manager (Old)
使用传统的
Input
设置。
Input System (New)
使用新的
输入
系统。输入系统作为此版本的预览包提供。要试用输入系统的预览版,请安装
InputSystem 包
。
并排使用两个系统。
Preloaded Assets
设置一个资源数组,供播放器在启动时加载。
要添加新资源,请增大
Size
属性的值,然后在出现的新
Element
框中设置对要加载的资源的引用。
AOT compilation options
提前 (AOT) 编译的附加选项。这有助于
优化构建的 iOS 播放器的大小
。
Strip Engine Code
如果希望 Unity Linker 工具删除您的项目不使用的 Unity 引擎功能的代码,请启用此选项。此设置仅适用于 IL2CPP 脚本后端。
大多数应用程序并不会使用每个可用的 DLL。此选项会剥离您的应用程序不使用的 DLL,从而减小所构建的 Player 的大小。如果您的应用程序使用的一个或多个类通常在当前设置下会被删除,则当您尝试构建该应用程序时,Unity 将显示一条调试消息。
Managed Stripping Level
选择 Unity 剥离未使用的托管 (C#) 代码时的激进程度。
当 Unity 构建应用程序时,Unity Linker 进程可以从项目使用的托管 DLL 中剥离未使用的代码。剥离代码可以使生成的可执行文件显著减小,但有时可能会意外删除正在使用的代码。此设置允许您选择 Unity 删除未使用代码时应采取的激进程度。
可用选项为:
Disabled
、
Low
、
Medium
和
High
。有关这些选项的更多信息,请参阅
托管代码剥离
的文档。
有关使用 IL2CPP 进行字节码剥离的信息,请参阅
使用 IL2CPP 进行托管字节码剥离
的文档。
Script Call Optimization
选择如何在运行时选择性地禁用异常处理以提高速度。有关更多信息,请参阅
iOS 优化
。
Slow and Safe
使用完整的异常处理(使用 Mono 脚本后端时会对设备的性能有一些影响)。
Fast but no Exceptions
不为设备上的异常提供数据(使用 Mono 脚本后端时应用程序运行速度更快)。
注意
:将此选项与
IL2CPP
脚本后端一起使用不会影响性能,但是可能有助于避免发布版本中出现未定义的行为。
Vertex Compression
设置每个通道的顶点压缩。例如,可以为除位置和光照贴图 UV 之外的所有内容启用压缩。导入对象的全局网格压缩设置将覆盖这些设置。
Optimize Mesh Data
启用此选项可从网格中删除应用于网格的材质不需要的所有数据(例如切线、法线、颜色和 UV)。