GraphicsStateCollection.CopyGraphicsStatesForVariant
Экспериментальный: это API экспериментально и может быть изменено или удалено в будущем.
Declaration
public bool CopyGraphicsStatesForVariant(Shader srcShader, Rendering.PassIdentifier srcPassId, LocalKeyword[] srcKeywords, Shader dstShader, Rendering.PassIdentifier dstPassId, LocalKeyword[] dstKeywords);public bool CopyGraphicsStatesForVariant(Experimental.Rendering.GraphicsStateCollection.ShaderVariant srcVariant, Experimental.Rendering.GraphicsStateCollection.ShaderVariant dstVariant);Параметры
| Параметр | Описание |
|---|---|
| srcShader | Шейдер, используемый в исходном варианте. |
| srcPassId | PassIdentifier используется в исходном варианте. |
| srcKeywords | LocalKeyword массив ключевых слов, используемых в исходном варианте. |
| srcVariant | Вариант исходного текста для копирования. |
| dstShader | Шейдер, используемый в варианте назначения. |
| dstPassId | PassIdentifier используется в варианте назначения. |
| dstKeywords | LocalKeyword массив ключевых слов, используемых в варианте назначения. |
| dstVariant | Вариант места назначения для копирования. |
Возвращаемое значение
логическое True, если была скопирована хотя бы одна новая графика состояния, иначе false.
Описание
Копирование всех графических состояний из исходного варианта в конечный вариант.
Если вариант шейдера назначения еще не существует в коллекции, то он будет добавлен.
using System.Collections.Generic; using UnityEngine; using UnityEngine.Experimental.Rendering;
public class CopyGraphicsStatesExample : MonoBehaviour { public GraphicsStateCollection graphicsStateCollection; public GraphicsStateCollection.ShaderVariant srcVariant;
void Start() { if (graphicsStateCollection.ContainsVariant(srcVariant.shader, srcVariant.passId, srcVariant.keywords)) { List<GraphicsStateCollection.ShaderVariant> variants = new List<GraphicsStateCollection.ShaderVariant>(); graphicsStateCollection.GetVariants(variants); foreach (var dstVariant in variants) { graphicsStateCollection.CopyGraphicsStatesForVariant(srcVariant, dstVariant); } } else { Debug.Log("srcVariant was not found in graphicsStateCollection! No graphics states were copied."); } } }
Дополнительные ресурсы: ,GetGraphicsStatesForVariant,, ,AddGraphicsStateForVariant,.