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

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,.