Unity 6.3
0 онлайн 35 гостей 3 в системе
Вход

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."); } } }