ShaderVariantCollection 记录每个着色器中实际使用的着色器变体。
这用于着色器预加载(“warmup”),以便游戏能够确保在启动时(或在关卡加载时间)加载“实际需要”的
着色器变体,以避免稍后在游戏中出现着色器编译相关的暂时性中断。
在 Unity 中,许多着色器内部具有多个“变体”,用于涵盖不同的光照模式、光照贴图、阴影等。这些变体由着色器通道类型和一组着色器关键字加以识别。请参阅 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 | 移除 GameObject、组件或资源。 |
DestroyImmediate | 立即销毁对象 /obj/。强烈建议您改用 Destroy。 |
DontDestroyOnLoad | 在加载新的 Scene 时,请勿销毁 Object。 |
FindObjectOfType | 返回第一个类型为 type 的已加载的激活对象。 |
FindObjectsOfType | 返回所有类型为 type 的已加载的激活对象的列表。 |
Instantiate | 克隆 original 对象并返回克隆对象。 |
bool | 该对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,判断它们是否引用同一个对象。 |