ShaderVariantCollection はどのシェーダーバリアントが各シェーダーで実際に使用されているかを記録します。
これはシェーダーをプリロードするために使います ( "ウオームアップ" ) 。だから、ゲームは "実際に必要"
と確認することができ、ゲーム後半でのシェーダーのコンパイルに関連するちらつきを避けるためにシェーダーバリアントは起動時 (あるいはレベルの読み込み時) に読み込まれます。
Unity 内には、Different light モード、ライトマップ、シャドウなどのために多くのシェーダー内部に複数の "バリアント" があります。これらのバリアントはシェーダーパスタイプとシェーダーキーワードのセットによって識別されます。 ShaderVariant を参照してください。
ShaderVariantCollection は一般的に ( Graphics Settings で) エディターからプレイ セッションで使用されるシェーダーバリアントを記録し、アセットとしてそれらを保存し、(再度 Graphics Settings で) プリロードシェーダーのリストに追加することに使われます。さらに、手動で ShaderVariantCollection オブジェクトの WarmUp を呼び出すことができます。
一般的に ShaderVariantCollection は古い Shader.WarmupAllShaders 関数を置き換えます。
| isWarmedUp | これはすでにウォームアップした ShaderVariantCollection かどうか (読み取り専用) |
| shaderCount | このコレクションでのシェーダーの数 (読み取り専用) |
| variantCount | このコレクションでのバリアントの合計 (読み取り専用) |
| ShaderVariantCollection | 新しい空のシェーダーバリアントのコレクションを作成します。 |
| Add | 新しいシェーダーバリアントをコレクションに追加します。 |
| Clear | コレクションからすべてのシェーダーバリアントを削除します。 |
| Contains | シェーダーバリアントがコレクション内にあるかどうかを確認します。 |
| Remove | コレクションからシェーダーバリエーションを追加します。 |
| WarmUp | ShaderVariantCollection のシェーダーを全部読み込みます。 |
| GetInstanceID | オブジェクトのインスタンス ID を返します |
| ToString | ゲームオブジェクトの名前を返します |
| Destroy | ゲームオブジェクトやコンポーネント、アセットを削除します |
| DestroyImmediate | 直ちにオブジェクトを破壊する (Destroy 関数の方を使うことを推奨します) |
| DontDestroyOnLoad | 新しいシーンを読み込んでもオブジェクトが自動で破壊されないように設定します |
| FindObjectOfType | タイプ type から最初に見つけたアクティブのオブジェクトを返します |
| FindObjectsOfType | タイプから見つけたすべてのアクティブのオブジェクト配列を返します |
| Instantiate | オブジェクト original のコピーを返します |
| bool | オブジェクトが存在するかどうか |
| operator != | 二つのオブジェクトが異なるオブジェクトを参照しているか比較します |
| operator == | 2つのオブジェクト参照が同じオブジェクトを参照しているか比較します。 |