1.Resolution and Presentation (分辨率和显示)
-
Fullscreen Window (全屏窗口): 应用程序将以全屏窗口模式运行,但不会独占屏幕。适用于想要全屏显示但仍需访问其他窗口的情况。
-
Resizable Window (可调整大小的窗口): 允许用户调整应用程序窗口的大小。适用于窗口模式下的应用程序,方便用户根据需要调整窗口尺寸。
-
Hide Navigation Bar (隐藏导航栏): 隐藏设备的导航栏,通常用于移动设备,使应用程序可以在更大的屏幕区域显示。
-
Render outside safe area (在安全区域外渲染): 允许在设备的安全区域外渲染内容。这对于某些设备(如带有刘海屏或圆角屏的设备)可能需要特别处理。
-
Optimized Frame Pacing (优化帧调度): 提供更平滑的帧率表现,减少帧率波动。对性能敏感的应用程序有帮助。
Resolution Scaling
-
Resolution Scaling Mode (分辨率缩放模式): 不使用分辨率缩放,保持原始分辨率。
-
Reset resolution on window resize (调整窗口大小时重置分辨率): 当用户调整窗口大小时,自动重置分辨率以匹配新的窗口尺寸。适用于窗口模式下的应用程序。
-
Blit Type (位块传输类型): 始终进行位块传输,确保图像在不同的显示器上保持一致。
-
Supported Aspect Ratio (支持的宽高比): 设置应用程序支持的宽高比,以确保在不同的显示设备上保持适当的显示比例。
-
Aspect Ratio Mode (宽高比模式): 设置宽高比的处理方式,例如固定宽高比或根据设备调整。
Orientation (方向)
-
Default Orientation (默认方向): 设置应用程序的默认屏幕方向。
- Native Aspect Ratio (原生宽高比): 使用设备的原生宽高比。
- Portrait (竖屏): 应用程序以竖屏模式运行。
-
Use 32-bit Display Buffer (使用32位显示缓冲区): 使用32位颜色显示缓冲区,提高颜色显示精度。
-
Disable Depth and Stencil (禁用深度和模版): 禁用深度缓冲区和模版缓冲区。可能会影响渲染效果,但可以提高性能。
-
Render Over Native UI (在原生UI上渲染): 允许应用程序在设备的原生UI(如状态栏)上进行渲染。
-
Show Loading Indicator (显示加载指示器): 在应用程序加载过程中显示加载指示器,提供用户反馈。:
2.Rendering (渲染设置)
-
Multithreaded Rendering (多线程渲染): 启用多线程渲染以提高性能。利用多核处理器并行处理渲染任务,减少主线程的负载。
-
Static Batching (静态合批): 将静态对象合并为一个大网格以减少绘制调用,优化渲染性能。适用于不移动、不变化的静态对象。
-
Dynamic Batching (动态合批): 将多个小的动态对象合并为一个网格以减少绘制调用,优化渲染性能。适用于会移动或变化的小对象。
-
Compute Skinning (计算蒙皮): 使用计算着色器进行骨骼动画蒙皮,以减轻 CPU 的负担,优化性能。适用于高密度骨骼动画的场景。
-
Graphics Jobs (Experimental) (图形任务(实验性)): 启用实验性的图形任务系统,允许将部分图形处理任务分配到多核处理器,以提高渲染性能。
-
Texture Compression Format (纹理压缩格式)ETC: 一种广泛使用的纹理压缩格式,尤其适用于移动平台。它能有效减少纹理占用的内存,提高加载速度和渲染性能。
-
Normal Map Encoding (法线贴图编码): 设置法线贴图的编码方式,影响法线贴图的精度和表现效果。通常选择最适合目标平台的编码格式。
-
Lightmap Encoding (光照贴图编码): 设置光照贴图的编码格式。不同的编码格式会影响光照贴图的质量和存储大小。
-
Lightmap Streaming (光照贴图流式传输): 允许光照贴图以流式方式加载和卸载,从而优化内存使用和加载性能。适用于大型场景。
-
Low Quality (低质量): 设置光照贴图流式传输的最低质量水平,以平衡内存占用和光照贴图质量。
-
Streaming Priority (流式传输优先级): 设置光照贴图或其他资源流式传输的优先级。优先级越高,资源加载速度越快。
-
Frame Timing Stats (帧时间统计): 启用帧时间统计以收集和分析每帧的渲染时间。对性能调试和优化很有帮助。
-
OpenGL: Profiler GPU Recorders (OpenGL:分析器 GPU 记录器),: (在 OpenGL 上,分析器 GPU 记录器可能会禁用 GPU 分析器),提醒用户在使用 OpenGL 时,启用 GPU 分析器可能会禁用某些 GPU 记录功能。需要根据具体需求进行权衡。
-
Virtual Texturing (Experimental) (虚拟纹理(实验性)): 启用实验性的虚拟纹理技术,通过分块加载和渲染大纹理,优化内存使用和渲染性能。
-
360 Stereo Capture (360 立体捕捉): 启用 360 度立体捕捉,允许渲染和捕捉 360 度的立体图像或视频。适用于虚拟现实(VR)和全景视频的制作。
3.Vulkan Settings (Vulkan 设置)
-
SRGB Write Mode (SRGB 写入模式): 设置是否使用 SRGB 颜色空间进行写入。启用后,可以提供更准确的颜色显示,尤其是对于需要精确颜色管理的应用程序。
-
Number of swapchain buffers (交换链缓冲区数量): 设置交换链中的缓冲区数量。增加缓冲区数量可以提高渲染效率和帧率稳定性,但也会增加内存使用。
-
Acquire swapchain image as late as possible (尽可能晚地获取交换链图像): 延迟获取交换链图像,以减少延迟并提高渲染性能。适用于需要尽量减少输入延迟的应用程序。
-
Recycle command buffers (回收命令缓冲区): 启用后,Unity 将回收并重复使用命令缓冲区,以提高性能和减少内存分配的开销。
-
Apply display rotation during rendering (在渲染期间应用显示旋转): 在渲染过程中应用显示设备的旋转设置,以确保内容正确显示在旋转后的屏幕上。适用于需要支持设备旋转的应用程序。
Identification (标识)
-
Override Default Package Name (覆盖默认包名): 允许自定义应用程序的包名。可以通过设置自定义包名来避免与其他应用程序发生冲突。
-
Package Name (包名): 设置应用程序的唯一标识符,通常遵循反向域名命名规则。例如,
com.DefaultCompany.PopGame
表示包名是com.DefaultCompany.PopGame
。每个 Android 应用程序必须具有唯一的包名。 -
Version (版本): 设置应用程序的版本号。例如,
0.1
表示应用程序的当前版本号。此版本号通常用于标识发布的版本。 -
Bundle Version Code (捆绑版本代码): 设置应用程序的内部版本号,通常用于应用程序更新时的版本控制。每次发布新版本时应递增此值。
-
Minimum API Level (最低 API 级别): 设置应用程序支持的最低 Android API 级别。例如,
Android 5.1 'Lollipop' (API level 22)
表示应用程序最低支持 Android 5.1 (API 级别 22)。 -
Target API Level (目标 API 级别): 设置应用程序的目标 Android API 级别。选择
Automatic (highest installed)
表示 Unity 将自动选择当前安装的最高 API 级别,以确保应用程序能够利用最新的 Android 功能和性能优化。
4.Configuration (配置)
-
Scripting Backend (脚本后端): 选择脚本后端,通常有两种选择:Mono 和 IL2CPP。IL2CPP 提供更好的性能和安全性。
-
Api Compatibility Level (API 兼容性级别): 设置项目的 API 兼容性级别,例如
.NET Standard 2.1
。选择适当的 API 级别以确保代码兼容性和功能。 -
C++ Compiler Configuration (C++ 编译器配置): 设置 IL2CPP 的编译器配置,例如
Release
模式,以优化性能。 -
Use incremental GC (使用增量垃圾回收): 启用增量垃圾回收,以减少垃圾回收对应用程序性能的影响,尤其适用于实时应用程序。
-
Assembly Version Validation (editor only) (程序集版本验证(仅编辑器)): 启用程序集版本验证以确保程序集版本的一致性。仅在编辑器中使用。
-
Mute Other Audio Sources (静音其他音频源): 启用时,当应用程序播放音频时,将静音其他音频源。
-
Target Architectures (目标架构): 选择应用程序支持的 CPU 架构:
- ARMv7: 支持 ARMv7 架构设备。
- ARM64: 支持 ARM64 架构设备。
- x86 (Chrome OS): 支持 x86 架构的 Chrome OS 设备。
- x86-64 (Chrome OS): 支持 x86-64 架构的 Chrome OS 设备。
-
Split APKs by target architecture (按目标架构拆分 APK) (实验性): 启用时,根据不同的 CPU 架构生成独立的 APK,以减小每个 APK 的体积。
-
Target Devices (目标设备): 选择应用程序的目标设备,例如
All Devices
(所有设备)。 -
Install Location (安装位置): 设置应用程序的默认安装位置:
- Force Internal (强制内部): 强制应用程序安装在设备的内部存储上。
- Auto (自动): 允许系统自动决定安装位置。
-
Internet Access (网络访问): 设置应用程序是否需要网络访问:
- Auto (自动): 根据需要自动请求网络访问权限。
- Internal (内部): 仅允许应用程序内部使用网络。
-
Write Permission (写权限): 设置应用程序的写权限:
- Internal (内部): 仅允许应用程序写入内部存储。
-
Filter Touches When Obscured (遮挡时过滤触摸): 启用时,当应用程序窗口被遮挡时,将过滤触摸事件以提高安全性。
-
Sustained Performance Mode (持续性能模式): 启用时,优化设备性能以提供更持久的性能表现,适用于长时间运行的应用程序。
-
Low Accuracy Location (低精度位置): 启用时,应用程序将使用低精度的位置服务,以节省电量和提高性能。
-
Chrome OS Input Emulation (Chrome OS 输入仿真): 启用时,仿真 Chrome OS 输入,以提高在 Chrome OS 设备上的兼容性。
-
Android TV Compatibility (Android TV 兼容性): 启用时,确保应用程序兼容 Android TV 设备。
-
Warn about App Bundle size (警告应用包大小): 启用时,当应用包大小超过设定阈值时,会发出警告。
-
App Bundle size threshold (应用包大小阈值): 设置应用包大小的阈值。例如,
150 MB
表示当应用包大小超过 150 MB 时发出警告。 -
Active Input Handling (活动输入处理): 设置输入处理模式:
- Input Manager (Old) (输入管理器(旧)): 使用旧的输入管理器进行输入处理。
5.Shader Settings (着色器设置)
Shader precision model (着色器精度模型)
-
Use platform defaults for sampler precision (使用平台默认的采样器精度): 启用时,将使用目标平台的默认采样器精度设置。这有助于确保着色器在不同平台上的一致性和性能。
-
Keep Loaded Shaders Alive (保持已加载的着色器): 启用后,Unity 将保持已加载的着色器存活状态,不会卸载未使用的着色器。这可以减少在运行时重新加载着色器的开销,但会增加内存使用。
Shader Variant Loading Settings (着色器变体加载设置)
-
Default chunk size (MB) (默认块大小(MB)): 设置着色器变体的默认块大小,以 MB 为单位。例如,
16 MB
表示每个块的大小为 16 MB。 -
Default chunk count (默认块数): 设置默认的块数。
-
Override (覆盖): 启用后,可以覆盖默认的着色器变体加载设置,并指定自定义的块大小和块数。
Script Compilation (脚本编译)
-
Scripting Define Symbols (脚本定义符号): 设置脚本编译时的定义符号,可以用于条件编译。
-
Copy Defines (复制定义符号): 复制当前的定义符号设置,可以用于备份或迁移到其他项目中。
-
Additional Compiler Arguments (附加编译器参数): 设置附加的编译器参数,可以用于调整编译器的行为或启用特定的编译选项。
以下是你上传的设置截图的解释: -
Suppress Common Warnings (抑制常见警告)
- 已勾选: 启用后,编译器将抑制常见的编译警告。这有助于减少编译输出中的噪音,专注于更重要的警告和错误。
-
Allow ‘unsafe’ Code (允许 ‘unsafe’ 代码)
- 未勾选: 不启用时,不允许在代码中使用
unsafe
关键字。启用后,允许使用不安全代码块,这对于需要直接操作内存的高级操作是必需的。
- 未勾选: 不启用时,不允许在代码中使用
-
Use Deterministic Compilation (使用确定性编译)
- 已勾选: 启用后,确保每次编译相同的输入(源代码和编译器设置)时,生成的输出(程序集)是完全相同的。这对于调试和版本控制非常有用。
-
Enable Roslyn Analyzers (启用 Roslyn 分析器)
- 已勾选: 启用后,编译器将使用 Roslyn 分析器来提供代码分析和建议。这有助于在编译时捕捉潜在问题,并改进代码质量。
6.Optimization(优化)
-
Prebake Collision Meshes(预先烘焙碰撞网格)
- 作用: 提前生成和存储碰撞网格,以减少运行时计算碰撞的开销。这样可以提升游戏性能,尤其是在处理复杂的物理交互时。
-
Preloaded Assets(预加载资产)
- 作用: 在游戏开始时预先加载某些资产(如纹理、模型等),以减少游戏运行中的加载时间和卡顿现象。
-
Strip Engine Code(剥离引擎代码)
- 作用: 从最终构建中移除不必要的引擎代码,以减小应用程序的体积和提升性能。
-
Managed Stripping Level(托管代码剥离级别)
- 作用: 指定托管代码的剥离级别,控制多少未使用的代码会被移除。较高的剥离级别通常可以减少应用的体积,但可能会影响功能。
-
Enable Internal Profiler(启用内部分析器,已弃用)
- 作用: 这个选项曾用于启用Unity内部分析器,以帮助分析和优化性能。现已弃用,通常不再使用。
-
Vertex Compression(顶点压缩)
- 作用: 对顶点数据进行压缩,以减少模型的内存占用和加载时间。
-
Optimize Mesh Data(优化网格数据)
- 作用: 优化网格数据,减少内存使用和提升渲染性能。
-
Texture MipMap Stripping(纹理MipMap剥离)
- 作用: 决定是否剥离纹理的MipMap级别。MipMap是一种纹理优化技术,可以提高纹理在远处显示的质量和性能。
-
Stack Trace(调用栈)
-
作用: 设置记录错误时的调用栈信息。可以帮助开发者调试和定位问题。
-
选项:
- None: 不记录调用栈。
- ScriptOnlyFull: 仅记录脚本相关的调用栈。
- Error: 记录错误时的调用栈。
- Assert: 记录断言时的调用栈。
- Warning: 记录警告时的调用栈。
- Log: 记录所有日志的调用栈。
- Exception: 记录异常时的调用栈。
- Legacy: 记录旧版日志的调用栈。
-
-
Clamp BlendShapes(限制BlendShapes,已弃用)
- 作用: 这个选项曾用于限制BlendShapes的值范围,以防止不正常的形状变形。现已弃用,通常不再使用。