Version: Unity 6.0 (6000.0)
语言 : 中文
将着色器设置为需要着色器模型或 GPU 功能
计算着色器

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

某些 #pragma 指令采用的参数能允许您针对特定图形 API 和平台。本页面包含了这些指令的用法信息,并提供有效参数值的列表。

包含或排除图形 API

默认情况下,Unity 会为当前构建目标列表中的所有图形 API 编译所有着色器程序。有时,您可能希望仅为特定的图形 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 生成这些变体。

为此,请使用 #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 2.0
metal iOS 或 Mac 上的 Metal
ps4 PlayStation®4
ps5 PlayStation®5
switch Nintendo Switch™
vulkan Vulkan
xboxseries Xbox Series S X

其他资源

将着色器设置为需要着色器模型或 GPU 功能
计算着色器