Version: 6000.3
语言: 中文
ShaderLab 参考中的 ZWrite 命令
ShaderLab 旧版功能参考

ShaderLab 参考中的 PackageRequirements 块

要指定子着色器或通道的包要求,请使用PackageRequirements块。ShaderLabUnity 用于定义 Shader 对象结构的语言。更多信息
请参阅术语表
支持单个PackageRequirements块,但每个块可以指定多个包要求。

渲染管线兼容性

功能名称 普遍渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
(URP)
高清渲染管线 (HDRP) 定制 SRP 内置渲染管线
ShaderLab:PackageRequirements 块 是的 是的 是的 是的

语法

注意:如果您提供PackageRequirements块,它必须位于 SubShader 或 Pass 内的所有其他声明之前。

签名 功能
PackageRequirements{ [requirement definition]} 定义通道或子着色器的包要求。

有多种方法可以声明包要求。每个都提供不同的行为。他们是:

  • “<包名称>”:指定子着色器或通道适用于包的任何版本。
  • “<包名称>”: “<版本限制>”:指定子着色器或通道仅适用于包版本的子集。
  • “<包名称>”: “unity=<version restrictions>”:指定子着色器或 Pass 仅适用于 Unity 版本的子集,并且需要具有给定名称的包。
  • “unity”:“<version restrictions>”:指定子着色器或 Pass 仅适用于 Unity 版本的子集。

版本语法

在 ShaderLab 的包要求中,版本使用major.minormajor.minor.patch格式。如果您仅使用major.minor,Unity 使用0对于patch.包版本还可以包括-preview-preview.n后缀,其中-preview相当于-preview.0.预览版先于非预览版,因此1.2.3-preview.4之后1.2.2但在1.2.3.

有多种方法可以指定版本范围。每个都提供不同的行为。他们是:

  • <version>:包括您输入的版本以及之后的所有版本。例如1.2.3包括以1.2.3;
  • [<version>]:指定确切版本。例如[1.2.3]仅包含版本1.2.3;
  • [<version1>,<version2>]:指定介于 <version1> 和 <version2> 之间的范围。使用方括号和圆括号会导致范围分别包含或排除到版本。左括号影响 <version1>,右括号影响 <version2>。例:[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 及更高版本。

设置包版本时,请注意以下事项:

  • 版本、版本范围和版本范围集不能包含任何额外的字符。
  • 版本范围不能为空。
  • 版本范围集不能有交集。
  • 包要求对空格很敏感。

如果语法不符合上述规定,则版本限制无效。有关无效包要求时发生的情况的更多信息,请参阅错误检查

其他资源

ShaderLab 参考中的 ZWrite 命令
ShaderLab 旧版功能参考