Version: 6000.3
语言: 中文
将着色器设置为需要 URP 或 HDRP
将着色器设置为需要着色器模型或 GPU 功能

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

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

包括或排除图形 API

默认情况下,Unity 会编译所有着色器在 GPU 上运行的程序。更多信息
请参阅术语表
当前生成目标列表中每个图形 API 的程序。有时,您可能只想为某些图形 API 编译某些着色器程序;例如,如果您使用并非所有平台都支持的功能。

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

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

#pragma only_renderers metal vulkan

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

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

#pragma exclude_renderers metal vulkan

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

在内置渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
,Unity 自动生成着色器变体Unity 根据着色器关键字及其状态的特定组合生成的着色器程序的版本。一个着色器对象可以包含多个着色器变体。更多信息
请参阅术语表
在特定条件下对应于图形层。如果需要,您还可以强制 Unity 生成这些变体。

为此,请使用#pragma hardware_tier_variantspreprocessor 指令,并指定要为其生成层着色器变体的图形 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一种在 Web 浏览器中呈现 2D 和 3D 图形的 JavaScript API。Unity Web 构建选项允许 Unity 将内容发布为 JavaScript 程序,这些程序使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容。更多信息
请参阅术语表
2.0
metal iOS 或 Mac 上的 Metal
ps4 游戏机®4
ps5 游戏机®5
switch 任天堂Switch™
vulkan 火神
webgpu WebGPU
xboxseries Xbox Series S|X

其他资源

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