GraphicsStateCollection.AddGraphicsStateForVariant
Экспериментальный: это API экспериментально и может быть изменено или удалено в будущем.
Declaration
public bool AddGraphicsStateForVariant(Shader shader, Rendering.PassIdentifier passId, LocalKeyword[] keywords, Experimental.Rendering.GraphicsStateCollection.GraphicsState setup);public bool AddGraphicsStateForVariant(Experimental.Rendering.GraphicsStateCollection.ShaderVariant variant, Experimental.Rendering.GraphicsStateCollection.GraphicsState setup);Параметры
| Параметр | Описание |
|---|---|
| шейдер | Шейдер используется в ассоциированном варианте. |
| passId | PassIdentifier используется в ассоциированном варианте. |
| ключевые слова | LocalKeyword массив ключевых слов, используемых в ассоциированном варианте. |
| вариант | Вариант шейдера, с которым должно быть связано состояние графики. |
| установка | GraphicsState добавить. |
Возвращаемое значение
логическое Возвращает true, если в коллекцию была добавлена новая графика состояния, иначе false.
Описание
Добавлено новое состояние графики, связанное с вариантом шейдера.
Если указанный вариант шейдера еще не существует в коллекции, то он будет добавлен. Дополнительные ресурсы: GetGraphicsStatesForVariant.
using System.Collections.Generic; using UnityEngine; using UnityEngine.Experimental.Rendering;
public class AddGraphicsStateExample : MonoBehaviour { public GraphicsStateCollection graphicsStateCollection; public GraphicsStateCollection.ShaderVariant variant;
void Start() { if (graphicsStateCollection.ContainsVariant(variant.shader, variant.passId, variant.keywords)) { List<GraphicsStateCollection.GraphicsState> states = new List<GraphicsStateCollection.GraphicsState>(); graphicsStateCollection.GetGraphicsStatesForVariant(variant, states); foreach (var state in states) { // Add a new modified version of each existing state for this variant GraphicsStateCollection.GraphicsState newState = state; newState.wireframe = true; graphicsStateCollection.AddGraphicsStateForVariant(variant, newState); } } else { Debug.Log("variant was not found in graphicsStateCollection! No graphics states were added."); } } }