版本:Unity 6 (6000.0)
语言:English
ShaderLab 中的 ZWrite 命令参考
ShaderLab 旧版功能参考

ShaderLab 中的 PackageRequirements 块参考

要为 SubShader 或 Pass 指定包要求,可以使用 PackageRequirements 块。ShaderLabUnity 用于定义着色器对象结构的语言。 更多信息
参见 术语表
支持每个 SubShader 或 Pass 一个 PackageRequirements 块,但每个块可以指定多个包要求。

渲染管线兼容性

功能名称 通用 渲染管线一系列操作,用于获取场景内容并在屏幕上显示。 Unity 允许您选择预构建的渲染管线,或编写自己的渲染管线。 更多信息
参见 术语表
(URP)
高清渲染管线 (HDRP) 自定义 SRP 内置渲染管线
ShaderLab:PackageRequirements 块

语法

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

签名 函数
PackageRequirements{ [需求定义]} 定义 Pass 或 SubShader 的包需求。

有多种方法可以声明包需求。每种方法都提供不同的行为。它们是

  • “<包名称>”:指定 SubShader 或 Pass 可与该包的任何版本一起使用。
  • “<包名称>”: “<版本限制>”:指定 SubShader 或 Pass 仅可与一部分包版本一起使用。
  • “<包名称>”: “unity=<版本限制>”:指定 SubShader 或 Pass 仅可与一部分 Unity 版本一起使用,并需要具有指定名称的包。
  • “unity”:“<版本限制>”:指定 SubShader 或 Pass 仅可与一部分 Unity 版本一起使用。

版本语法

在 ShaderLab 的包需求中,版本使用 major.minormajor.minor.patch 格式。如果仅使用 major.minor,则 Unity 将 patch 使用 0。包版本还可以包含 -preview-preview.n 后缀,其中 -preview 等效于 -preview.0。预览版本在非预览版本之前,因此 1.2.3-preview.41.2.2 之后但在 1.2.3 之前。

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

  • <版本>:包含您输入的版本以及所有后续版本。例如,1.2.3 包含从 1.2.3 开始的所有版本;
  • [<版本>]:指定确切的版本。例如,[1.2.3] 仅包含版本 1.2.3
  • [<版本1>,<版本2>]:指定 <版本1> 和 <版本2> 之间的范围。使用方括号和圆括号会导致范围分别包含或排除版本。起始括号影响 <版本1>,结束括号影响 <版本2>。例如:[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 旧版功能参考