版本:Unity 6 (6000.0)
语言:英语
设置着色器以需要 URP 或 HDRP
设置着色器以需要着色器模型或 GPU 功能

设置着色器以需要图形 API 或平台

一些 #pragma 指令 接受允许您定位特定图形 API 和平台的参数。本页包含有关使用这些指令的信息,并提供有效参数值的列表。

包含或排除图形 API

默认情况下,Unity 会为当前构建目标列表中的每个图形 API 编译所有 着色器在 GPU 上运行的程序。 更多信息
参见 词汇表
程序。有时,您可能希望仅为某些图形 API 编译某些着色器程序;例如,如果您使用并非所有平台都支持的功能。

要仅为给定 API 编译着色器程序,请使用 #pragma only_renderers 指令。您可以传递多个值,用空格分隔。

此示例演示如何仅为 Metal 和 Vulkan 编译着色器

#pragma only_renderers metal vulkan

要从给定编译器编译中排除着色器代码,请使用 #pragma exclude_renderers 指令。您可以传递多个值,用空格分隔。

此示例演示如何从 Metal 和 Vulkan 的编译中排除着色器

#pragma exclude_renderers metal vulkan

为给定图形 API 的图形层级生成着色器变体

在内置 渲染管线一系列操作,将场景内容显示在屏幕上。Unity 允许您从预构建的渲染管线中选择,或编写自己的渲染管线。 更多信息
参见 词汇表
中,Unity 会自动生成与 图形层级 对应的 着色器变体根据着色器关键字及其状态的特定组合,Unity 生成的着色器程序版本。着色器对象可以包含多个着色器变体。 更多信息
参见 词汇表
,前提是在某些条件下。如果需要,您也可以强制 Unity 生成这些变体。

为此,请使用 #pragma hardware_tier_variants 预处理器指令,并指定要为其生成层级着色器变体的图形 API。

例如,这会指示 Unity 为 Metal 编译层级着色器变体

#pragma hardware_tier_variants metal

有效参数值的列表

支持的值为

描述
d3d11 DirectX 11 功能级别 10 及以上,DirectX 12
glcore OpenGL 3.x,OpenGL 4.x
gles3 OpenGL ES 3.x,WebGL一个 JavaScript API,在 Web 浏览器中渲染 2D 和 3D 图形。Unity 的 Web 构建选项允许 Unity 将内容发布为使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容的 JavaScript 程序。 更多信息
参见 词汇表
2.0
metal iOS 或 Mac 上的 Metal
ps4 PlayStation®4
ps5 PlayStation®5
switch Nintendo Switch™
vulkan Vulkan
xboxseries Xbox Series S|X

其他资源

设置着色器以需要 URP 或 HDRP
设置着色器以需要着色器模型或 GPU 功能