要为子着色器或通道指定资源包要求,请使用 PackageRequirements 代码块。ShaderLab 支持逐子着色器或通道使用单个 PackageRequirements 代码块,但各个代码块可以指定多个资源包要求。
| 功能名称 | 通用渲染管线 (URP) | 高清渲染管线 (HDRP) | 自定义 SRP | 内置渲染管线 |
|---|---|---|---|---|
| ShaderLab:PackageRequirements 代码块 | 是 | 是 | 是 | 是 |
注意:提供 PackageRequirements 代码块时,它必须位于子着色器或通道中的所有其他声明之前。
| 签名 | 功能 |
|---|---|
PackageRequirements{ [requirement definition]} |
定义通道或子着色器的资源包要求。 |
有多种方法可以声明资源包要求。每种方法都能提供不同的行为。方法如下:
在__ ShaderLab__Unity 用于定义着色器对象结构的语言。更多信息
See in Glossary 的资源包要求中,版本使用 major.minor 或 major.minor.patch 格式。如果仅使用 major.minor,Unity 会为 patch 使用 0。资源包版本还可以包含 -preview 或 -preview.n 后缀,其中 -preview 等同于 -preview.0。预览版本先于非预览版本,因此 1.2.3-preview.4 在 1.2.2 之后但在 1.2.3 之前。
有多种方法可以指定版本范围。每种方法都能提供不同的行为。方法如下:
1.2.3 包含以 1.2.3 开头的所有版本;[1.2.3] 仅包含版本 1.2.3;[1.2.3,2.3.4) 包含从 1.2.3 到 2.3.3 的所有版本。还可以为单个资源包指定版本范围集。要用各组范围创建一组版本范围,请使用分号作为分隔符。例如,[2.0,3.4.5];[3.7];4.0 包含从 2.0.0 到 3.4.5、3.7.0 和 4.0.0 及更高的版本。
为资源包设置版本时,请注意以下几点:
如果语法不符合上述要求,则版本限制无效。如需详细了解无效资源包要求的后果,请参阅错误检查。