Version: Unity 6.0 (6000.0)
语言 : 中文
iOS 环境设置
针对 iOS 开发

iOS Player 设置

iOS Player 的播放器设置允许您自定义 Unity 在面向 iOS 平台时构建和显示最终应用程序的方式。您可以通过导航到编辑 (Edit) > 项目设置 (Project Settings) > 播放器 (Player),然后选择 iOS 选项来访问它们。有关常规播放器设置的描述,请参阅 Player Settings 相关文档。

iOS 的播放器设置部分。
iOS 的播放器设置部分。

您可以在以下部分找到这些属性的文档:

图标 (Icon)

iOS 的图标设置。
iOS 的图标设置。

使用 Icon 设置可自定义您的应用程序在 Apple 商店中的品牌。

可为每个 iOS 设备上传并分配以下类型的自定义图标:

设置 描述
Application icons 应用程序的主要设备图标。
Spotlight icons 焦点搜索结果中显示的图标。
Settings icons 设备主设置页面中显示的图标。
Notification icons 在应用程序发送的通知中显示的图标。
Marketing icons 在 Apple App Store 中使用的图标。

图标文件可以是 Unity 支持的任何图像文件(以 Texture2D 资源的形式)。如果缺少图标纹理,Unity 将以最接近的大小来缩放图标纹理,并优先使用较大的纹理。

分辨率和演示 (Resolution and Presentation)

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

分辨率 (Resolution)

属性 描述
Resolution Scaling Mode 使用 Resolution Scaling Mode 设置可以将缩放设置为等于或低于屏幕原始分辨率。
Disabled 缩放不会应用,并且应用程序将渲染屏幕原始分辨率。
FixedDPI 选择此值时,将显示 Target DPI 属性。

使用 Target DPI 属性以设置游戏屏幕的目标 DPI。如果设备的屏幕原始 DPI 高于此值,则 Unity 会降低游戏画面分辨率以匹配此设置。这有助于优化性能和电池续航时间。您还可以将其专门用于特定的 DPI 设置。

Unity 计算缩放的公式为 min(Target DPI * Factor / Screen DPI, 1)。Factor 使用在 Quality 设置中输入的 Resolution Scaling Fixed DPI Factor 值。
Reset resolution on window resize 当窗口大小发生变化时,将屏幕分辨率设置为适配新窗口大小。如果将 Resolution Scaling Mode 设置为 Fixed DPI,则分辨率将根据 Fixed DPI 属性重新计算。

其他 (Miscellaneous)

属性 描述
Show Loading Indicator 指定是否以及如何显示加载指示符。
不显示 不显示加载指示符。
显示默认的加载指示符。
显示大号加载指示符。

方向 (Orientation)

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

注意:Unity 会将此设置的值同步应用于 Android、iOS 和 UWP 平台。
Portrait 应用程序的底部与屏幕底部对齐。
Portrait Upside Down 应用程序的底部与屏幕顶部对齐。
Landscape Right 应用程序的右侧与屏幕顶部对齐。
Landscape Left 应用程序的左侧与屏幕顶部对齐。
Auto Rotation 屏幕会根据自动旋转支持的方向 中指定的方向自动旋转。
Use Animated Autorotation (Deprecated) 在用户旋转设备时启用动画过渡。否则,屏幕旋转会立即改变。
注意
• 仅当 Default Orientation 设置为 Auto Rotation 时,此属性才可见。
• 在 iOS 16 及更高版本上,此属性无效,因为自动旋转总是会有动画效果。
• 此属性已弃用,将在未来的版本中移除。

自动旋转的允许方向 (Allowed Orientations for Auto Rotation)

使用 Allowed Orientations for Auto Rotation 部分可指定将 Default Orientation 设置为 Auto Rotation 时应用程序支持的方向。这在某些情况下很有用,例如,将应用程序锁定为横向,但允许用户在左侧横向和右侧横向之间切换。

注意:仅当在 Orientation 部分中将 Default Orientation 设置为 Auto Rotation 时,此部分才可见。

属性 描述
Portrait 允许应用以竖屏模式运行,且应用底部与屏幕底部对齐。
Portrait Upside Down 允许应用以竖屏模式运行,且应用底部与屏幕顶部对齐。
Landscape Right 允许设备以横向模式运行,应用程序的右侧与屏幕顶部对齐。
Landscape Left 允许设备以横向模式运行,应用程序的左侧与屏幕顶部对齐。

多任务支持 (Multitasking Support)

如果应用程序需要在全屏模式下运行,请启用 Requires Fullscreen 选项。

状态栏 (Status Bar)

使用 Status Bar 部分来指定与 iOS 状态栏相关的参数。

属性 描述
Status Bar Hidden 在应用程序启动时隐藏状态栏。
Status Bar Style 定义应用程序启动时状态栏的样式。

其他 Resolution and Presentation 设置

属性 描述
Disable Depth and Stencil 禁用深度和模板缓冲区。
Render Over Native UI 强制应用程序在原生 UI 之上渲染。要使此设置生效,请将摄像机的 Clear Flags 设置为使用 Alpha 值小于 1 的纯色。

启动画面 (Splash image)

使用 Virtual Reality Splash Image 设置以选择虚拟现实 (Virtual Reality) 显示的自定义启动画面。有关常见启动画面设置的信息,请参阅 Splash Screen

启动屏幕

iOS 的启动画面设置。
iOS 的启动画面设置。

启动画面是一个故事板文件,iOS 通过该文件动态地在设备上创建启动画面。具有以下局限性:

  • 无法根据 iPad 的设备方向来显示不同内容。
  • 所有的 iPhone 都支持横向启动屏幕,但是,由于有个缺陷,某些 iOS 版本中显示 Landscape Left 启动屏幕,而不是 Landscape Right
  • 在 iOS 13 之前,无法覆盖故事板的根视图控制器,因此启动画面支持所有方向并忽略部分__ UI__(即用户界面,User Interface)让用户能够与您的应用程序进行交互。Unity 目前支持三种 UI 系统。更多信息
    See in Glossary
    设置,例如状态栏行为。从 iOS 13 开始,启动画面与应用的方向和状态栏外观设置完全符合。

这些限制也适用于自定义故事板。

iPhone Launch ScreeniPad Launch Screen 部分中,为 iPhone 和 iPad 选择 Launch screen type 选项:

属性 描述
Default 选择此选项时,Unity 会添加一个纯蓝黑图像,该图像的颜色与 Unity 默认启动画面的背景颜色相同。图像用于纵向和横向方向,并使用纵横填充模式显示。
None Apple 不再支持启动图像。此选项的存在是为了向后兼容。如果选择此选项,项目将改用 Unity 的默认启动画面。
Image and background (relative size) 在屏幕中心显示图像并用纯色填充剩余区域。
Portrait Image 选择用于纵向方向的图像。
Landscape Image 选择用于横向方向的图像。
Background Color 选择用于填充图像未覆盖的任何屏幕空间的背景颜色。
Fill percentage 将图像大小指定为屏幕大小的百分比。Unity 根据屏幕的长度或宽度计算图像大小,以较小者为准(横向显示为垂直方向,纵向显示为水平方向)。
Image and background (constant size) 在屏幕中心显示图像并用纯色填充该区域。选项与图像和背景(相对大小)相同,不同之处在于您可以以点(而不是百分比)为单位指定图像大小。

提示:点和像素不同。像素 (px) 是图像中的单个点。点 (pt) 是长度单位,等于 1/72 英寸。像素大小是相对于屏幕大小和分辨率而言的,而点大小是在任何屏幕上的大小。有关更多信息,请参阅 W3C 指南中关于大小单位的内容。
Custom Storyboard 选择此选项时,将显示 Custom Storyboard 按钮。
Custom Storyboard 选择此按钮可使用自定义 Storyboard 文件作为加载屏幕。

自定义故事板

对于 iPhone 或 iPad,如果选择 Launch screen type 下拉菜单中的 Custom Storyboard 选项,会出现 Custom Storyboard 按钮。

单击 Custom Storyboard 按钮可选择一个故事板,以便游戏在设备上启动时显示该故事板。要让故事板出现在此处,必须首先在 Xcode 中创建故事板并将其复制到您的项目中。有关更多信息,请参阅故事板、场景和连接

如果不使用自定义故事板,可以使用 Unity 的内置启动画面来实现启动画面。

调试和崩溃报告 (Debugging and crash reporting)

使用调试和崩溃设置可以收集有关应用程序性能的数据并解决崩溃问题。

调试 (Debugging)

属性 描述
Enable Internal Profiler (Deprecated) 此功能已被弃用,将在 Unity 的未来版本中移除。使用 Profiler 窗口替代

Profiler 收集应用程序性能数据,并将报告打印到控制台。报告包含每个 Unity 子系统在 30 帧范围内每一帧执行所需的平均毫秒数。

崩溃报告 (Crash Reporting)

属性 描述
On .Net UnhandledException 选择在发生 .NET 未处理的异常时 Unity 采取的操作。
崩溃 在应用程序崩溃时生成崩溃报告,用户可以将其提交到 iTunes,而开发者可以使用该报告来排除崩溃问题。
静默退出 应用程序退出时没有错误,不会生成崩溃报告
Log Obj-C Uncaught Exceptions 将 Objective-C Uncaught Exception 信息打印到控制台。
Enable Crash Report API 启用自定义崩溃报告程序以捕获崩溃。可使用脚本通过 CrashReport API 来访问崩溃日志。

其他设置

可在 Other Settings 部分中配置一系列 Player 设置。这些选项分为以下几组:

渲染

使用这些设置可自定义 Unity 针对 iOS 平台渲染应用程序的方式。

    
属性 描述
Color Space 选择要用于渲染的颜色空间。有关更多信息,请参阅线性渲染概述
Gamma Gamma 颜色空间通常用于帧缓冲区格式的每通道限制为 8 位的旧硬件上的光照计算。即使当今的监视器是数字显示器,它们仍会采用伽马编码信号作为输入信号。
Linear 线性颜色空间渲染可提供更精确的结果。选择线性颜色空间时,编辑器默认启用 sRGB 采样。如果纹理 处于线性颜色空间,则需要在编辑器中禁用每个纹理的 sRGB 采样。
Color Gamut 您可以添加或移除色域 以用于渲染。单击加号 (+) 图标以查看可用色域的列表。色域定义了特定设备(如显示器或屏幕)能够呈现的颜色范围。sRGB 色域是默认色域(也是必需色域)。
Metal API 验证 启用此选项可使用编辑器内置工具调试着色器问题。在绘制调用时,该工具会检查着色器预期的纹理和缓冲区是否与实际附加的资源匹配,并确认其兼容性。检查结果将显示在控制台中。

Metal API 验证 不会启用 Apple 的 Metal API 验证,但您可以通过在 macOSiOS 的构建设置 (Build Settings) 窗口中将 Run in Xcode as 设置为 Debug 来启用它。

注意:此设置仅在 macOS 上运行 Unity 编辑器时显示。
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 启用此选项可将图形 API 调用从 Unity 的主线程移至单独的工作线程。这有助于提升主线程 CPU 负载较高的应用性能。
Static Batching 启用此选项可使用静态批处理
Dynamic Batching 在构建中启用动态批处理(默认情况下启用)。

注意:可编程渲染管线 处于激活状态时,动态批处理将无效。因此,仅当 可编程渲染管线资源图形 设置为空时,此设置才会显示。
精灵批处理阈值 (Sprite Batching Threshold) 控制批处理时使用的最大顶点阈值。
GPU SKinning 启用此选项可使用 Metal GPU 计算蒙皮,这样可以释放 CPU 资源。
Graphics Jobs (Experimental) 启用此选项可指示 Unity 将图形任务(渲染循环)卸载到在其他 CPU 核心上运行的工作线程。此功能旨在减少主线程上 Camera.Render 所花费的时间,该时间通常成为瓶颈。

注意:此功能是实验性的。此功能可能无法为项目带来性能提升,并可能造成新的崩溃。
Texture compression format 选择 ASTC 或 PVRTC 作为 iOS 的默认纹理压缩格式。请查看 纹理压缩格式概述 以了解更多信息。
Normal Map Encoding 选择 XYZDXT5nm 样式来设置法线贴图的编码方式。此设置会影响法线贴图的编码方案和压缩格式。DXT5nm 样式的法线贴图质量更高,但在着色器中解码的计算成本也更高。
Lightmap Encoding 定义影响光照贴图的编码方案和压缩格式。
您可以选择 Low QualityNormal QualityHigh Quality
HDR 立方体贴图编码 (HDR Cubemap Encoding) 定义 HDR 立方体贴图的编码方案和压缩格式。
您可以选择 Low QualityNormal QualityHigh Quality。有关更多信息,请参阅 光照贴图:技术信息
Lightmap Streaming 启用此选项可对光照贴图使用Mipmap 串流。Unity 在生成所有光照贴图时将此设置应用于这些光照贴图。
注意:要使用此设置,必须启用纹理 Mipmap 串流质量 设置。
Streaming Priority 设置 Mipmap 串流系统 中所有光照贴图的优先级。Unity 在生成所有光照贴图时将此设置应用于这些光照贴图。
数值越大,优先级越高。有效值范围为 -128127
Frame Timing Stats 启用此选项可收集 CPU/GPU 帧时序统计信息。
Allow HDR Display Output 在应用程序运行时激活 HDR 模式输出。此设置仅适用于支持该功能的显示屏。如果显示屏不支持 HDR 模式,则游戏将在标准模式下运行。
Use HDR Display Output 检查主显示器是否支持 HDR,如果支持,则在应用程序启动时切换到 HDR 输出。

注意 仅当 Allow HDR Display Output 激活时,此选项才可用。
Swap Chain Bit Depth 选择每个颜色通道中用于交换链缓冲区的位数。可选择 Bit Depth 10Bit Depth 16。有关位深度的更多信息,请参阅 D3DHDRDisplayBitDepth 的脚本 API 页面。

注意 仅当 Use HDR Display Output 处于激活时,此选项才可用。
Bit Depth 10 Unity 将使用 R10G10B10A2 缓冲区格式和 Rec2020 原色(采用 ST2084 PQ 编码)。
Bit Depth 16 Unity 将使用 R16G16B16A16 缓冲区格式和 Rec709 原色及线性颜色(无编码)。
Virtual Texturing 如果场景中有许多高分辨率纹理,启用此选项可以减少 GPU 内存使用量和纹理加载时间。有关更多信息,请参阅 虚拟纹理

注意:Unity Editor 需要重新启动才能使此设置生效。
360 Stereo Capture 指示 Unity 是否可以捕获立体 360 图像和视频。启用后,Unity 会编译其他着色器变体,以支持 360 度捕获(目前仅适用于 Windows/OSX)。enable_360_capture 关键字会在调用 RenderToCubemap 时添加,但不会在该函数外部触发。
加载/存储操作调试模式 (Load/Store Action Debug Mode) 突出显示可能导致移动平台上渲染问题的未定义像素。这会影响 Unity 编辑器中的游戏视图,并且如果在构建设置中选择了 Development Build,也会影响构建好的应用程序。请参阅 LoadStoreActionDebugModeSettings 以了解更多信息。

标识 (Identification)

输入应用程序的标识信息。

属性 描述
Override Default Bundle Identifier 指示是否可以手动设置捆绑包标识符。
注意:此设置会影响 macOS、iOS、tvOS 和 Android。
Bundle Identifier 输入要构建的应用程序的捆绑包标识符。标识符的基本结构是 com.CompanyName.ProductName。此结构可能会因您所在的国家/地区的不同而异,因此始终默认为 Apple 为您的开发者帐户提供的字符串。ProductName 可从您的资源调配证书中获取。

捆绑包标识符必须遵循约定 com.YourCompanyName.YourProductName,并且只能包含字母数字和连字符。有关更多信息,请参阅 CFBundleIdentifier
重要信息:Unity 会自动将输入的任何无效字符替换为连字符。

要设置此属性,请启用 Override Default Bundle Identifier
Version 输入捆绑包的 release-version-number 字符串(例如,4.3.6)。

此值在关联的 info.plist 文件中显示为 CFBundleShortVersionString。有关更多信息,请参阅 CFBundleShortVersionString
Build 输入此应用版本的内部版本号。

此值在关联的 info.plist 文件中显示为 CFBundleVersion。有关更多信息,请参阅 CFBundleVersion
Signing Team ID 输入您的 Apple Developer Team ID。您可以在 Apple 开发者网站上的 Xcode Help 下找到此信息。这将为生成的 Xcode 项目设置 Team ID,从而允许开发者使用 Build and Run 功能。必须输入 Apple Developer Team ID 才能自动签署您的应用程序。

有关更多信息,请参阅创建资源调配配置文件
Automatically Sign 启用此选项可指示 Xcode 自动为您的构建版本签名。

配置 (Configuration)

属性 描述
Scripting Backend 选择要使用的脚本后端。脚本后端决定了 Unity 在项目中如何编译和执行 C# 代码。
Mono 将 C# 代码编译为 .NET 公共中间语言 (CIL),并通过公共语言运行时执行该 CIL。有关更多信息,请参阅 Mono
IL2CPP 将 C# 代码编译为 CIL,然后将 CIL 转换为 C++ 代码,最终将 C++ 编译成本地机器代码,该代码在运行时直接执行。请参阅 IL2CPP 以了解更多信息。
API Compatibility Level 选择项目中可以使用的 .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 以及额外的 API)。当使用的库需要访问 .NET Standard 2.1 未涵盖的 API 时,选择此选项。此选项会生成较大的构建文件,并且额外的 API 可能不被所有平台支持。更多信息,请参阅引用其他类库程序集
.NET Standard 兼容 .NET Standard 2.1。生成较小的构建文件,并提供完整的跨平台支持。
IL2CPP 代码生成 定义 Unity 如何管理 IL2CPP 代码生成。

注意:要使用此功能,请将 脚本后端 设置为 IL2CPP
C++ Compiler Configuration 选择用于编译 IL2CPP 生成代码的 C++ 编译器配置。
Debug Debug 配置禁用所有优化,这使得代码的编译速度更快,但运行速度较慢。
Release Release 配置启用优化,使编译后的代码运行速度更快,生成的二进制文件体积更小,但编译时间会更长。
Master Master 配置启用所有可能的优化,以最大限度地提升性能。例如,在使用 MSVC++ 编译器的平台上,此配置会启用链接时代码生成。使用此配置编译代码的时间可能会显著长于 Release 配置。如果可以接受构建时间的增加,Unity 建议使用 Master 配置来构建游戏的发布版本。
IL2CPP Stacktrace Information 选择要包含在堆栈跟踪中的信息。有关信息类型的更多详细信息,请参阅 托管堆栈跟踪与 IL2CPP
方法名称 在堆栈跟踪中包含各个托管方法。
方法名称、文件名称和行号 在堆栈跟踪中包含各个托管方法的文件和行号信息。

注意:使用此选项可以增加构建程序的构建时间和最终大小。
Use incremental GC 启用增量式垃圾回收器,该功能可将垃圾回收任务分散到多个帧中,从而减少因垃圾回收导致的帧时间峰值。更多信息,请参阅自动内存管理
Allow downloads over HTTP (nonsecure) 表示是否允许通过 HTTP 下载内容。由于建议的协议为 HTTPS,因此默认选项为 Not allowed,这样更安全。
不允许 不允许通过 HTTP 下载。
创建开发版 仅允许在开发版中通过 HTTP 下载。
始终允许 允许在开发和发布版本中通过 HTTP 下载。
Camera Usage Description 输入在设备上访问摄像机的原因。
Microphone Usage Description 输入在设备上访问麦克风的原因。
Location Usage Description 输入访问设备位置的原因。
Use On-Demand Resources 使用按需加载资源并启用 Variant map for app slicing
Accelerometer Frequency 选择加速度计采样的频率。使用较低的频率可获得更好的性能。如果您的应用程序不使用加速度计,请选择 Disabled
Mute Other Audio Sources 启用此选项可使 Unity 应用程序静音其他后台应用程序的音频。如果禁用,后台应用程序的音频将与 Unity 应用程序同时播放。
Prepare iOS for Recording 初始化麦克风录制 API。这会降低录音延迟,但也会通过耳机重新传送 iPhone 音频输出。
Force iOS Speakers when Recording 通过内置扬声器发送手机的音频输出,即使插入耳机和录音也是如此。
Requires Persistent WiFi 启用此选项可要求 Wi-Fi 连接。此选项在应用程序运行时保持有效的 Wi-Fi 连接。
Supported URL schemes 支持的 URL 方案 的列表。

要添加新方案,请增大 Size 属性的值,然后在出现的新 Element 框中设置对要打开的 URL 的引用。
Target Device 选择应用程序的目标设备。
Target SDK 选择应用程序的目标 SDK。

注意:请务必选择正确的 SDK。例如,如果在 Unity 中选择设备 SDK 并在 Xcode 中以模拟器为目标,则构建将失败。
Target minimum iOS Version 选择运行应用程序所需要的最低 iOS 版本。
Enable ProMotion Support 在 ProMotion 显示屏上使用高频刷新率 (120 Hz)。这可能会导致应用程序消耗更多的电池电量。
Requires ARKit support 在应用程序发布到 App Store 时将目标设备限制为 iPhone 6s/iOS 11 或更新款的设备。
Automatically add capabilities 生成一个 entitlements.plist 文件,并在项目中为 Game Center(检测到时)添加功能。如果您打算使用企业证书或使用通配符捆绑包标识符签署应用程序,请禁用此设置。
Defer system gestures on edges 选择一个或多个边缘,用户必须轻扫两次相应的边缘才能作为系统手势。
Hide home button on iPhone X 应用程序运行时隐藏 iPhone X 设备上的主屏幕按钮。
Render Extra Frame on Pause 在应用程序暂停时再发出额外的一帧。这使您的应用程序能够显示图形,用于显示应用程序进入后台时的暂停状态。
Enable Custom Background Behaviors 选择用户将应用程序发送到后台时应用程序可以执行的操作。有关示例,请参阅 BackgroundFetch GitHub 项目。
Variant map for app slicing 展开 Variant map for app slicing 部分可查找脚本中配置的变体名称列表。有关变体的更多信息,请参阅 应用程序切片

注意:启用 Use on-demand resources 以查看此属性。
Architecture 选择目标架构。仅 ARM64 可用于 iOS。
Simulator Architecture 选择要为模拟器构建的架构。仅当 Target SDK 设置为 Simulator SDK 时,此属性才可见。
ARM64 支持 64 位 ARM 架构。
X86_64 支持 64 位 Intel/AMD 架构。
Universal 支持所有架构,包括 64 位 ARM 和 Intel/AMD。
Active Input Handling 选择如何处理来自用户的输入。
Input Manager(旧版) 使用传统的输入 设置。
输入系统包(新版) 使用输入 系统。此选项需要您安装 InputSystem 包
Both 同时使用这两个系统。

API 兼容性级别 (API Compatibility Level)

可为所有目标选择 mono API 兼容性级别。有时,第三方 .NET 库会使用 .NET 兼容性级别之外的功能。如果您使用的是 Windows,则可以使用第三方软件 ILSpy 来了解可能发生的问题以及如何修复问题。请遵循以下步骤:

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

着色器设置 (Shader Settings)

属性 描述
Shader Precision Model 选择着色器使用的默认精度。有关更多信息,请参阅在着色器中使用 16 位精度
平台默认值 在移动平台上使用较低的精度,在其他平台上使用全精度。
统一 如果平台支持,请使用较低的精度。
Strict shader variant matching 如果缺少着色器变体且控制台中显示错误,请使用错误着色器。
Keep Loaded Shaders Alive 保持所有加载的着色器为激活状态并防止被卸载。

着色器变体加载 (Shader Variant Loading)

使用这些设置可以控制着色器在运行时的内存使用量。

属性 描述
Default chunk size (MB) 设置 Unity 在构建的应用程序中为所有平台存储的压缩着色器变体数据块的最大大小。默认值为 16。有关更多信息,请参阅着色器加载
Default chunk count 设置 Unity 在所有平台上保留在内存中的解压缩块数量的默认限制。默认值为 0,表示无限制。
Override 启用此选项可为此构建目标覆盖__默认块大小__和__默认块数量__的设置。
Chunk size (MB) 覆盖此构建目标上的__默认块大小 (MB)__ 值。
Chunk count 覆盖此构建目标上的__默认块数量__值。

脚本编译 (Script Compilation)

iOS 的脚本编译设置。
iOS 的脚本编译设置。
属性 描述
Scripting Define Symbols 设置自定义编译标志。

有关更多详细信息,请参阅平台相关的编译
其他编译器参数 向此列表添加条目,以将附加参数传递给 Roslyn 编译器。每个附加参数使用一个新条目。
要创建新条目,请点击 Add (+)。要删除条目,请点击 Remove-)。

添加完所有所需参数后,点击 Apply,以便在后续编译中包含这些附加参数。点击 Revert 可将此列表重置为最新应用的状态。
禁止常见警告 指示是否显示 C# 警告 CS0169CS0649
Allow ‘unsafe’ Code 启用对预定义程序集(例如,Assembly-CSharp.dll)中“不安全”C# 代码的编译支持。
对于程序集定义文件 (.asmdef),请选中其中一个 .asmdef 文件,并在打开的检视面板窗口中启用该选项。
使用确定性编译 指定是否禁用 -deterministic C# 编译标志。启用此设置后,每次编译生成的程序集在字节级别上完全一致。

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

优化

属性 描述
Prebake Collision Meshes 在构建时将碰撞数据添加到网格
Preloaded Assets 设置一个资源数组,供播放器在启动时加载。
要添加新资源,请增加 Size 属性的值,随后在新出现的 Element 槽位中设置要加载的资源引用。
AOT Compilation Options 提前 (AOT) 编译的附加选项。这有助于 优化构建的 iOS 播放器的大小
Strip Engine Code 如果希望 Unity Linker 工具移除项目中未使用的 Unity 引擎功能代码,请启用此选项。此设置仅适用于 IL2CPP 脚本后端。大多数应用程序不会使用所有可用的 DLL。启用此选项后,Unity 会移除应用程序未使用的 DLL,从而减小构建后的 Player 大小。如果您的应用程序正在使用一个或多个通常会在当前设置下被移除的类,则在尝试构建应用程序时,Unity 会显示一条调试消息。
Managed Stripping Level 选择 Unity 剥离未使用托管 (C#) 代码时的激进程度。在构建应用程序时,Unity Linker 进程可以从项目使用的托管 DLL 中剥离未使用的代码。剥离代码可以显著减小生成的可执行文件大小,但也可能会错误地删除正在使用的代码。

有关这些选项以及使用 IL2CPP 进行字节码剥离的更多信息,请参阅 ManagedStrippingLevel
最低 剥离类库、UnityEngine 和 Windows 运行时程序集,并复制所有其他程序集。
删除无法访问的托管代码以减少构建大小和 Mono/IL2CPP 构建时间。
运行 UnityLinker,进一步减小代码大小,超越 Low 级别所能实现的效果。可能需要使用自定义的 link.xml 文件,某些反射代码路径的行为可能会有所不同。
UnityLinker 将尽可能多地剥离代码这将进一步减小代码大小,超出 Medium 可以实现的效果,但某些方法的托管代码调试可能不再有效。可能需要使用自定义的 link.xml 文件,某些反射代码路径的行为可能会有所不同。
Script Call Optimization 选择如何在运行时禁用异常处理以提高速度。有关更多信息,请参阅 iOS 优化
Vertex Compression 设置每个通道的顶点压缩。此设置会影响项目中的所有网格。
通常,顶点压缩用于减小网格数据在内存中的占用、减小文件大小,并提升 GPU 性能。

有关顶点压缩的配置方法及其限制的详细信息,请参阅压缩网格数据
Optimize Mesh Data 启用此选项可从用于构建的网格中移除未使用的顶点属性。此功能可减少网格数据量,从而有助于减小构建文件大小、缩短加载时间以及降低运行时内存占用。

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

有关更多信息,请参阅 PlayerSettings.stripUnusedMeshComponents
纹理 Mipmap 剥离 为所有平台启用 Mipmap 剥离功能。在构建过程中,Unity 会从纹理中剥离未使用的 Mipmap 级别。
Unity 通过将 Mipmap 级别与当前平台的质量设置进行比较,以确定哪些 Mipmap 级别未被使用。如果在当前平台的所有质量设置中都排除了某个 Mipmap 级别,Unity 会在构建时将这些 Mipmap 级别剥离。如果 QualitySettings.globalTextureMipmapLimit 被设置为一个已剥离的 Mipmap 级别,Unity 会将其值调整为最近的未剥离的 Mipmap 级别。

堆栈跟踪 (Stack Trace)

通过启用与每种日志类型对应的选项来选择您的首选日志记录类型。

属性 描述
None 从未记录任何日志。
ScriptOnly 仅在运行脚本时记录日志。
Full 始终记录日志。

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

旧版 (Legacy)

属性 描述
Clamp BlendShapes (Deprecated) 激活此选项可在 SkinnedMeshRenderers 中限制混合形状权重的范围。

PlayerSettingsiOS

iOS 环境设置
针对 iOS 开发