ShaderVariantCollection

class in UnityEngine

/

Inherits from:Object

Switch to Manual

Description

ShaderVariantCollection 记录每个着色器中实际使用的着色器变体。

这用于着色器预加载(“warmup”),以便游戏能够确保在启动时(或在关卡加载时间)加载“实际需要”的 着色器变体,以避免稍后在游戏中出现着色器编译相关的暂时性中断。

在 Unity 中,许多着色器内部具有多个“变体”,用于涵盖不同的光照模式、光照贴图、阴影等。这些变体由着色器通道类型和一组着色器关键字加以识别。请参阅 ShaderVariant

ShaderVariantCollection 的典型用法是从编辑器(在 Graphics Settings 下)记录在播放会话期间使用的着色器变体,将它们另存为资源,然后将它们添加到预加载着色器列表(也在 Graphics Settings 中)。此外,您还可以对 ShaderVariantCollection 对象手动调用 WarmUp

ShaderVariantCollection 一般替代旧 Shader.WarmupAllShaders 函数。

Variables

isWarmedUp此 ShaderVariantCollection 是否已预热?(只读)
shaderCount此集合中的着色器数量(只读)。
variantCount此集合中的总变体数量(只读)。

Constructors

ShaderVariantCollection创建新的空着色器变体集合。

Public Functions

Add向集合中添加新的着色器变体。
Clear从集合中移除所有着色器变体。
Contains检测某个着色器变体是否在集合中。
Remove从集合添加着色器变体。
WarmUp将着色器完全加载到 ShaderVariantCollection 中。

Inherited members

Variables

hideFlagsShould the object be hidden, saved with the Scene or modifiable by the user?
name对象的名称。

Public Functions

GetInstanceID返回对象的实例 ID。
ToString返回 GameObject 的名称。

Static Functions

Destroy删除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoadDo not destroy the target Object when loading a new Scene.
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfType返回所有类型为 type 的已加载的激活对象的列表。
Instantiate克隆 original 对象并返回克隆对象。

Operators

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。