版本: Unity 6 (6000.0)
语言英语
  • C#

ShaderVariantCollection

UnityEngine 中的类

/

继承自:Object

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议的更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

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

这用于着色器预加载(“预热”),以便游戏可以确保在启动时(或关卡加载时)加载“实际需要的”着色器变体,以避免游戏后期出现与着色器编译相关的卡顿。

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

ShaderVariantCollection 的典型用法是记录编辑器(在图形设置下)在游戏会话期间使用的着色器变体,将其保存为资源,并将其添加到预加载的着色器列表中(同样在图形设置下)。此外,您可以在 ShaderVariantCollection 对象上手动调用 WarmUp

ShaderVariantCollection 通常取代旧的 Shader.WarmupAllShaders 函数。

属性

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

构造函数

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

公共方法

Add向集合中添加新的着色器变体。
Clear从集合中删除所有着色器变体。
Contains检查着色器变体是否在集合中。
Remove从集合中删除着色器变体。
WarmUp预热此着色器变体集合中的所有着色器变体。
WarmUpProgressively预热此着色器变体集合中的指定数量的着色器变体。

继承的成员

属性

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

公共方法

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

静态方法

Destroy删除游戏对象、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载的对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载的对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆原始对象并返回克隆。
InstantiateAsync捕获原始对象的快照(必须与某个游戏对象相关),并返回 AsyncInstantiateOperation。

运算符

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