版本:Unity 6 (6000.0)
语言:English
着色器变体的简介
剔除着色器变体

检查您有多少着色器变体

您可以使用日志记录和性能分析工具来检查 Unity 编译了多少着色器在 GPU 上运行的程序。 更多信息
参见 术语表
变体,并确定您可以删除(剔除)哪些变体以改善构建时间并减少内存使用量。您可以执行以下操作

获取编辑器使用的着色器变体列表

您可以在场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,本质上是分段设计和构建游戏。 更多信息
参见 术语表
视图和游戏视图中生成编辑器使用的着色器变体列表。为此,请执行以下操作

  1. 转到编辑 > 项目设置 > 图形
  2. 着色器加载下,您可以在当前跟踪:旁边看到您有多少个着色器和着色器变体。
  3. 选择保存到资源…以创建着色器变体集合资源

获取 Unity 在构建时创建的着色器变体列表

构建项目后,打开Editor.log日志文件并搜索Compiling shader以查看 Unity 编译和剔除了哪些变体。例如

Compiling shader "Sprites/Default" pass "" (vp)
    Full variant space:         8
    After settings filtering:   8
    After built-in stripping:   4
    After scriptable stripping: 4
    Processed in 0.00 seconds
    starting compilation...
    finished in 0.03 seconds. Local cache hits 0 (0.00s CPU time), remote cache hits 0 (0.00s CPU time), compiled 4 variants (0.09s CPU time), skipped 0 variants
    Prepared data for serialisation in 0.00s

如果您使用通用渲染管线一系列操作,这些操作获取场景的内容并在屏幕上显示它们。Unity 允许您从预构建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 术语表
(URP) 或高清渲染管线 (HDRP),请参阅以下内容

获取 Unity 在运行时编译的着色器变体列表

  1. 转到编辑 > 项目设置 > 图形
  2. 着色器加载下,启用记录着色器编译
  3. 构建项目时,在构建设置中启用开发构建开发构建包含调试符号并启用探查器。 更多信息
    参见 术语表
  4. 控制台窗口Unity 编辑器窗口,显示 Unity 或您自己的脚本生成的错误、警告和其他消息。 更多信息
    参见 术语表
    中,选择编辑器并启用完整日志 [仅限开发人员模式]
  5. 启动您构建的应用程序。

当 Unity 为 GPU 编译着色器时,它会在控制台窗口中打印Compiled shader消息。

检查着色器在运行时使用了多少内存

使用内存探查器模块内存探查器软件包检查着色器在运行时使用了多少内存。如果着色器使用了大量内存,您可以尝试剔除其变体。

突出显示运行时缺少的着色器

在 Unity 2022.2 及更高版本中,当材质尝试使用缺少的着色器变体时,您可以强制 Unity 在运行时显示粉红色的错误着色器。

  1. 转到编辑 > 项目设置 > 播放器
  2. 其他设置下的着色器设置部分,选择严格着色器变体匹配

您也可以在 C#脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间推移修改组件属性并以您喜欢的任何方式响应用户输入。 更多信息
参见 术语表
中使用strictShaderVariantMatching启用此功能。

执行此操作后,Unity 会在控制台中显示一条警告,其中包含缺少的变体及其关键字。您可以在剔除期间使用此功能来检查您是否没有删除项目所需的着色器变体。

着色器变体的简介
剔除着色器变体