サブシェーダーまたはパスのパッケージ要件を指定するには、PackageRequirements ブロックを使用します。ShaderLab は 1 つのサブシェーダーまたはパスにつき 1 つの PackageRequirements ブロックをサポートしますが、各ブロックは複数のパッケージ要件を指定することができます。
| 機能名 | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP | ビルトインレンダーパイプライン |
|---|---|---|---|---|
| ShaderLab: PackageRequirements block | はい | はい | はい | はい |
ノート: PackageRequirements ブロックを提供する場合、これは、サブシェーダーまたはパス内の他のすべての宣言の前に来る必要があります。
| シグネチャ | 機能 |
|---|---|
PackageRequirements{ [requirement definition]} |
パスまたはサブシェーダーのパッケージ要件を定義します。 |
パッケージ要件を宣言する方法は複数あります。それぞれ、異なる動作を提供します。相違点:
ShaderLab のパッケージ要件では、バージョンは major.minor または major.minor.patch の形式を使用します。major.minor のみを使用する場合、Unity は patch に 0 を使用します。パッケージのバージョンには -preview や -preview.n という postfix (接尾辞) を入れることもできます。ここで -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 までのすべてのバージョンを含みます。また、1 つのパッケージに対して、バージョン範囲のセットを指定することもできます。個々の範囲からバージョン範囲のセットを作成するには、セパレーター文字としてセミコロンを使用します。例えば、[2.0,3.4.5];[3.7];4.0 は、バージョン 2.0.0 から 3.4.5 まで、バージョン 3.7.0、そしてバージョン 4.0.0 以降のバージョンを含んでいます。
パッケージのバージョンを設定する場合、以下の点に注意してください。
構文が上記に従わない場合、そのバージョン制限は無効です。無効なパッケージ要件で何が起こるかについての詳細は、エラーチェック を参照してください。