Version: Unity 6.0 (6000.0)
语言 : 中文
ShaderLab 中的 ZWrite 命令参考
ShaderLab 旧版功能参考

ShaderLab 中的 PackageRequirements 代码块参考

要为子着色器或通道指定资源包要求,请使用 PackageRequirements 代码块。ShaderLab 支持逐子着色器或通道使用单个 PackageRequirements 代码块,但各个代码块可以指定多个资源包要求。

渲染管线兼容性

功能名称 通用渲染管线 (URP) 高清渲染管线 (HDRP) 自定义 SRP 内置渲染管线
ShaderLab:PackageRequirements 代码块

语法

注意:提供 PackageRequirements 代码块时,它必须位于子着色器或通道中的所有其他声明之前。

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

有多种方法可以声明资源包要求。每种方法都能提供不同的行为。方法如下:

  • “<资源包名称>”:指明子着色器或通道适用于任何版本的资源包。
  • “<资源包名称>”: “<版本限制>”:指明子着色器或通道仅适用于部分版本的资源包。
  • “<资源包名称>”: “unity=<版本限制>”:指明子着色器或通道仅适用于部分 Unity 版本,且需要给定名称的资源包。
  • “unity”:“<版本限制>”:指明子着色器或通道仅适用于部分 Unity 版本。

版本语法

__ ShaderLab__Unity 用于定义着色器对象结构的语言。更多信息
See in Glossary
的资源包要求中,版本使用 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 旧版功能参考