Unity 之 Project Setting -- Player 面板属性详解

举报
陈言必行 发表于 2021/11/10 11:29:54 2021/11/10
【摘要】 Unity Project Setting Player面板详解,看完这篇文章,彻底搞懂各个选项设置实际作用。

前言

总览

分为六部分:

  • Icon:桌面上显示的游戏图标。可从项目中的 2D 图像资源选择图标。

  • Resolution and Presentation:屏幕分辨率和其他演示详细信息的设置。

  • Splash Image:游戏启动时显示的图像。此部分还包括用于创建启动画面的常用设置。

  • Other Settings:平台特有的任何其他设置。

  • Publishing Settings:有关如何准备将构建的应用程序从应用商店或托管网页上进行发布的详细信息。

  • XR Settings:特定于虚拟现实、增强现实和混合现实应用的设置。

  • Lightmap Encoding: 选择 Normal QualityHigh Quality 来设置光照贴图编码。此设置影响光照贴图的编码方案和压缩格式。

  • Lightmap Streaming:启用此选项可根据需要仅加载光照贴图 Mipmap 以渲染当前游戏摄像机。此值适用于生成的光照贴图纹理。【启用Texture Streaming Quality时可用】

    • Streaming Priority:设置光照贴图 Mipmap 串流优先级以解决资源冲突。这些值应用于生成的光照贴图纹理。
      正数提供更高的优先级。有效值范围为 –128 到 127。

一,Player

1.1 属性说明

  • Company Name:公司名称
  • Product Name:应用名称
  • Version:版本号
  • Default Icon:默认头像
  • Default Cursor:默认鼠标
  • Cursor Hotspot:鼠标偏移

1.2 效果展示

更换鼠标图标和偏移位置效果展示:

偏移计算方式是上正下负,左正右负。


二,ICON(图标)

2.1 属性说明

这个面板是根据1.1中的默认头像Default Icon自动转换的。

一般情况下是:美术给的1024*1024的图,我们直接在1.1中Default Icon赋值即可,不需要做特殊处理。

2.2 使用示例

勾选Override for PC,Mac && Linux Standalone,可以上传不同大小的图标来填充提供的每个方块,下面的大尺寸选择图之后,会向下兼容小尺寸:


三,Resolution and Presentation(分辨率和显示)

3.1 Resolution 部分

  • Fullscreen Mode: 选择全屏模式。此设置定义了启动时的默认窗口模式。

    1. Fullscreen Window:将程序窗口设置为显示器的全屏原始分辨率。
    2. Exclusive Fullscreen (Windows only):设置应用程序以保持对显示器的单独全屏使用。此选项仅支持Windows系统,其他平台设置则会回退到Fullscreen Window。
    3. Maximized Window (Mac only):将应用程序窗口设置为操作系统的“最大化”定义。在 macOS 上,这意味着显示带有自动隐藏菜单栏和停靠栏的全屏窗口。此选项仅支持macOS系统,其他平台设置则会回退到Fullscreen Window。
    4. Windowed:将应用程序设置为标准的非全屏可移动窗口,其大小取决于应用程序分辨率。此模式默认支持拖拽调整窗口大小(可任意大小且不会按照比例进行缩放),若禁用需取消勾选Resizable Window选项。
  • Default Is Native Resolution: 启用此选项可使游戏使用目标机器上使用的默认分辨率。【Fullscreen Mode 选 Maximized Window 可用】

  • Default Screen Width: 设置游戏画面的默认宽度。【Fullscreen Mode 选 Windowed 生效】

  • Default Screen Height: 设置游戏画面的默认高度。【Fullscreen Mode 选 Windowed 生效】

  • Mac Retina Support: 启用此选项可在 Mac 上启用高 DPI (Retina) 屏幕支持。Unity 默认情况下启用此功能。此功能可增强 Retina 显示屏上的项目显示效果,但在激活状态下会有点耗费资源。

  • Run In background: 启用此选项可在应用程序失去焦点时让游戏继续运行(而不是暂停)。

3.2 Standalone Player Options 部分

  • Capture Single Screen: 启用此选项可确保全屏模式 (Fullscreen Mode) 下的独立平台游戏不会使多显示屏设置中的辅助显示屏变暗。Mac OS X 上不支持该功能。
  • Display Resolution Dialog: 开启关闭用户自主选择程序分辨率使用的。【此选项2019.4版本之后没有了】
  • Use Player Log: 启用此选项可向日志文件写入调试信息。默认已启用。官方建议:上传 Mac App Store时,禁用此选项。
  • Resizable Window: 启用此选项可允许用户调整独立平台播放器窗口的大小。(可任意大小且不会按照比例进行缩放,还不明白就将网页窗口化然后拖拽看下)。
  • Visible in Background: 启用则在后台可见。
  • Allow Fullscreen Switch: 可在窗口化和全屏之间进行切换(启用则有最大化按钮,禁用则最大化按钮不可用)。
  • Force Single Instance: 启用此选项可将独立平台播放器限制为单个并发运行实例。
  • Supported Aspect Ratios: 启用希望游戏启动时出现在分辨率对话框中的每个宽高比。【启用Display Resolution Dialog时生效】

3.3 实例:代码设置启动尺寸

使用SetResolution方法,设置分辨率。参数为:长,宽,是否全屏。

Screen.SetResolution(1920, 1080, false);

下面这个方法,设置为当前屏幕的最大的16:9的尺寸,然后缩小到0.8倍;

这样写的原因是因为想要在保证窗口在屏幕上保存一定比例,而不是固定大小。固定大小会存在,不同大小显示器设置不同分辨率时,窗口大小显示达不到预期。

void Start()
{
#if UNITY_STANDALONE_OSX
        // Mac 启动尺寸适配 -- 首次适配后,第二次会使用上次尺寸
        Resolution[] reslution = Screen.resolutions;
        float standard_width = reslution[reslution.Length - 1].width;
        float standard_height = ((standard_width * 9) / 16);
 
        Screen.SetResolution(Convert.ToInt32(standard_width * 0.8f), Convert.ToInt32(standard_height * 0.8f), false);
#endif
}

四,Splash Image(默认开场图像)

4.1 属性说明

  • Virtual Reality Splash Image: 选择要在虚拟现实显示中显示的自定义启动画面。

  • Show Splash Screen: 选项可在游戏开始时显示启动画面。个人版无法关闭

  • Preview: 使用 Preview 按钮可在 Game 视图中查看启动画面的预览

  • Style: 使用 Splash Style 设置可控制 Unity 品牌的风格。

    1. Light on Dark(默认设置)或 Dark on White:
  • Animation: 使用 Animation 设置可定义启动画面在屏幕上的显示和消失方式。

    1. Static: 不应用动画。
    2. Dolly: 看起来有一个渐变的效果。
    3. Custom: 自定义。
  • Logos: 自定义启动画面显示的Logo。(可添加多个并分别为其设置显示时间)

  • Background: 使用 Background 部分中的设置可自定义应用程序启动画面的背景。

4.2 证书对启动动画设置权限说明:

在Hub的设置界面 --> 许可证管理 进行激活证书

专业版:

个人版:

  • Unity Pro 和 Plus 订阅对 Unity 启动画面的自定义没有限制。

  • Unity Personal 订阅具有以下限制:

    1. 无法禁用 Unity 启动画面。
    2. 无法禁用 Unity 徽标。
    3. 不透明度级别可以设置为最小值 0.5。

4.3 个人版使用示例

在设置Logos上选择一张透明图片:[可以加多个,会依次显示]

然后点击Splash Image --> Preview:

在Game视图预览效果如下:


五,Other Setting(其他设置)

5.1 Rendering

  • Color Space: 选择应该用于渲染的颜色空间,选项为:Gamma,Linear。两者区别官方解释

  • Auto Graphics API for Windows: 启用后在Windows系统计算机上使用最佳图形 API。禁用此选项可添加和删除支持的图形 API。

  • Auto Graphics API for Mac: 启用后在Mac系统计算机上使用最佳图形 API。禁用此选项可添加和删除支持的图形 API。【应用:Mac启动崩溃解决方案

  • Auto Graphics API for Linux: 启用后在Linux系统计算机上使用最佳图形 API。禁用此选项可添加和删除支持的图形 API。

  • Color Gamut for Mac: 可以为独立 Mac 平台添加或删除色域以用于渲染。单击加号 (+) 图标查看可用色域的列表。色域定义了给定设备(如监视器或屏幕)可以使用的所有颜色范围。sRGB 色域是默认色域(也是必需色域)。

  • Metal Editor Support: 启用此选项可在 Unity Editor 中使用 Metal API,并释放更快速的着色器迭代以定位 Metal API。

    • Metal API Validation: 如果需要调试着色器问题,请启用此选项。【此选项仅在调试时使用】
  • Memoryless Depth: 选择何时使用无记忆渲染纹理。无记忆渲染纹理在渲染时临时存储在区块内存中,而不是存储在 CPU 或 GPU 内存中。这可减少应用的内存使用量,但您无法读取或写入这些渲染纹理。【只有 iOS、tvOS 10.0+ Metal 和 Vulkan 上支持】

    1. Unused: 从不使用无记忆帧缓冲区深度。【默认】
    2. Forced: 始终使用无记忆帧缓冲区深度。
    3. Automatic: 让 Unity 决定何时使用无记忆帧缓冲区深度。
  • Static Batching:静态批处理[^1]。

  • Dynamic Batching:启用此选项可在构建中使用动态批处理(默认情况下启用)。【当可编程渲染管线激活时,此选项不显示】。[^2]

  • Compute Skinning:启用此选项可使用 DX11/ES3 GPU 计算蒙皮,可以释放CPU资源。

  • Graphics Jobs: 启用此选项可使得图形任务卸载到在其他 CPU 核心上运行的工作线程。此功能旨在减少主线程上 Camera.Render 所花费的时间。

  • Frame Timing Stats: 启用此属性可收集 CPU 和 GPU 帧时间统计信息。此属性与动态分辨率摄像机设置同时使用可确定应用程序是受 CPU 还是受 GPU 限制。

  • Use Display In HDR Mode:选中此复选框可使游戏在运行时自动切换到 HDR 模式输出。【仅限 Windows,若显示器不支持则按照标准模式进行】

  • Swap Chain Bit Depth: 选择每个颜色通道中用于交换链缓冲区的位数。【HDR 模式下可用】

    1. Bit Depth 10 :Unity将使用 R10G10B10A2 缓冲区格式和 Rec2020 原色(采用 ST2084 PQ 编码)。
    2. Bit Depth 16:Unity 将使用 R16G16B16A16 缓冲区格式和 Rec709 原色及线性颜色(无编码)。

5.2 Mac App Store Options

  • Bundle Identity: 包名
  • Build:构建号
  • Category:类别
  • Mac App Store Validation:验证Mac商店【上传AppStore时开启,否则会打不开游戏,这个选项可以以防止用户不在购买游戏的计算机上而在另一台计算机上运行游戏。】

5.3 Configuration

  • Scripting Backend:选择要使用的脚本后端。

    1. Mono: 将 C# 代码编译为 .NET 公共中间语言 (CIL) 并使用公共语言运行时执行该 CIL。
    2. IL2CPP: 将 C# 代码编译为 CIL,将 CIL 转换为 C++,然后将该 C++ 编译为本机机器代码,该代码在运行时直接执行。
  • API Compatibility Level: 选择可以在项目中使用的 .NET API 运行时。

    1. .Net 2.0:.Net 2.0 库。最高的 .net 兼容性,最大的文件大小。
    2. .Net 2.0 Subset:完整 .net 兼容性的子集,最小的文件大小。
    3. .Net Standard 2.0:兼容 .NET Standard 2.0。生成较小的构建并具有完整的跨平台支持。
    4. .Net 4.x:兼容 .NET Framework 4(包括 .NET Standard 2.0 配置文件中的所有内容以及其他 API)。如果使用的库需要访问 .NET Standard 2.0 中未包含的 API,请选择此选项。
  • C++ Compiler Configuration: 选择在编译 IL2CPP 生成的代码时使用的 C++ 编译器配置。【启用IL2CPP时可用】

  • Use Incremental GC:选择启用增量GC垃圾回收器【这种垃圾回收器将垃圾收集工作分布在多个帧上,因此可以在帧持续时间中减少与 gc 相关的峰值。】

  • Camera Usage Description:相机使用说明

  • Assembly Usage Description:设备使用描述

  • Microphone Usage Description:麦克风的使用说明

  • Allow Define Symbols:自定义宏定义,多个宏定义之间使用逗号分开

  • Active Input Handling

    1. Input System (Preview): 使用较新的输入系统。【需要安装对应包】
    2. Input Manager (Old): 从老版本升级才会有的选项。【为了兼容】
  • Active Input Handling

5.4 Optimization

  • Prebake Collision Meshes:启用此选项可在构建时将碰撞数据添加到网格。
  • Keep Loaded Shaders Alive:启用此选项可防止卸载着色器。
  • Preloaded Assets:设置一个资源数组,供播放器在启动时加载。
  • Vertex Compression:设置每个通道的顶点压缩。例如,可以为除位置和光照贴图 UV 之外的所有内容启用压缩。为每个导入对象设置的整个网格压缩将覆盖在对象上设置顶点压缩。所有其他内容都遵循这些顶点压缩设置。
  • Optimize Mesh Data:启用此选项可从网格中删除应用于网格的材质不需要的所有数据(例如切线、法线、颜色和 UV)。

5.5 Stack Trace


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

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

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


六,XR 设置(XR Setting)

  • 360 Stereo Capture: 启用此选项可使用支持 360 度捕获的着色器变体。默认情况下会禁用此选项,并且 Unity 不会生成这些着色器变体。

  • Virtual Reality Supported: 为 Unity Editor 和游戏版本启用本机 VR 支持。

  • Virtual Reality SDKs: 在列表中添加和删除虚拟现实 SDK。此列表仅在启用 Virtual Reality Supported 时可用。(点击±号可增加删除SDK)

  • Stereo Rendering Mode: 选择要为虚拟现实设备渲染的方式。

    • Multi Pass: 这是正常的渲染模式。Unity 渲染场景两次:首先渲染左眼图像;然后再次为右眼图像。
    • Single Pass: 将两个眼睛图像同时渲染到一个打包的渲染纹理中。这意味着整个场景只渲染一次,这大大减少了 CPU 处理时间。
    • Single Pass Instanced (Preview): GPU 执行单个渲染通道,将每个绘制调用都替换为实例化绘制调用。由于两个绘制调用之间的缓存一致性,因此可大大降低 CPU 的使用,并略微减少 GPU 的使用。使用此模式可显著降低应用程序的功耗。

[^1]:什么是静态批处理? 静态批处理的目的是为了减少场景的draw call,实现原理很简单,在运行的开始阶段,把需要进行静态批处理的模型合并到一个新的网格结构中,相当于原本有十个模型,需要十个draw call,其实将它们合并成一个模型,只需要一次draw call即可。
[^2]:动态批处理" 专门为优化场景中共享同一材质的动态GameObject的渲染设计的。 为了合并渲染批次, 动态批处理 每一帧都会有一些CPU性能消耗,如果我们开启了 动态批处理 ,Unity会自动地将所有符合条件的共享同一材质的动态GameObject在一个Draw call内绘制。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。