Version: 2021.1

ShaderVariantCollection

class in UnityEngine

/

继承自:Object

切换到手册

描述

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

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

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

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

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

变量

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

构造函数

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

公共函数

Add向集合中添加新的着色器变体。
Clear从集合中移除所有着色器变体。
Contains检测某个着色器变体是否在集合中。
Remove从集合添加着色器变体。
WarmUpPrewarms all shader variants in this shader variant collection.

继承的成员

变量

hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

GetInstanceIDGets the instance ID of the object.
ToString返回对象的名称。

静态函数

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfTypeGets a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。

运算符

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