着色器变体和相关图形状态的集合。
使用图形状态集合记录运行时遇到的着色器变体和图形状态,并预热着色器变体。
集合中的每个着色器变体可能具有一个或多个相关图形状态。着色器变体和图形状态的每个排列将导致 Unity 创建着色器的单个 GPU 表示。
using UnityEngine; using UnityEngine.Experimental.Rendering;
public class GraphicsStateCollectionTracing : MonoBehaviour { public GraphicsStateCollection graphicsStateCollection;
void Start() { graphicsStateCollection = new GraphicsStateCollection(); graphicsStateCollection.BeginTrace(); }
void OnDestroy() { graphicsStateCollection.EndTrace(); } }
completedWarmupCount | 已预热的着色器变体排列数。 |
graphicsDeviceType | 集合旨在与之一起使用的图形设备 API 类型。 |
isTracing | 指示集合是否正在积极跟踪着色器变体和图形状态的标志。 |
isWarmedUp | 指示集合是否已预热的标志。 |
qualityLevelName | 集合旨在与之一起使用的质量级别。 |
runtimePlatform | 集合旨在与之一起使用的平台。 |
totalGraphicsStateCount | 集合中所有着色器变体的所有图形状态的总数。 |
variantCount | 此集合中包含的着色器变体数量。 |
version | 集合的当前版本。 |
GraphicsStateCollection | 创建一个使用文件内容填充或为空的 GraphicsTextureCollection。 |
AddGraphicsStateForVariant | 添加与着色器变体关联的新图形状态。 |
AddVariant | 向集合添加新的着色器变体。 |
BeginTrace | 开始跟踪运行时遇到的着色器变体和图形状态。 |
ClearVariants | 从集合中清除所有着色器变体和相关图形状态。 |
ContainsVariant | 检查集合中是否存在变体。 |
EndTrace | 停止跟踪运行时遇到的着色器变体和图形状态。 |
GetGraphicsStateCountForVariant | 获取与着色器变体关联的图形状态数量。 |
GetGraphicsStatesForVariant | 用与输入着色器变体关联的图形状态填充给定列表。 |
GetVariants | 用集合中包含的着色器变体填充给定列表。 |
LoadFromFile | 加载给定路径的 GraphicsStateCollection。 |
RemoveGraphicsStatesForVariant | 从着色器变体中删除所有关联的图形状态。 |
RemoveVariant | 从集合中删除着色器变体和关联的图形状态。 |
SaveToFile | 将 GraphicsStateCollection 保存到磁盘。 |
SendToEditor | 使用 PlayerConnection 将 GraphicsStateCollection 发送到编辑器。 |
WarmUp | 使用关联的图形状态预热此集合中的所有着色器变体。 |
WarmUpProgressively | 使用关联的图形状态预热给定数量的着色器变体排列。 |
GetInstanceID | 获取对象的实例 ID。 |
ToString | 返回对象的名称。 |
Destroy | 删除 GameObject、组件或资产。 |
DestroyImmediate | 立即销毁对象 obj。强烈建议使用 Destroy 代替。 |
DontDestroyOnLoad | 加载新场景时不要销毁目标对象。 |
FindAnyObjectByType | 检索类型为 type 的任何活动的已加载对象。 |
FindFirstObjectByType | 检索类型为 type 的第一个活动的已加载对象。 |
FindObjectsByType | 检索类型为 type 的所有已加载对象的列表。 |
Instantiate | 克隆对象 original 并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某个 GameObject 相关)的快照,并返回 AsyncInstantiateOperation。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,以查看它们是否引用同一个对象。 |