ComputeShader.keywordSpace
Declaration
public Rendering.LocalKeywordSpace keywordSpace;Описание
Локальное пространство ключевых слов этого вычислительного шейдера.
Ключевые слова шейдера определяют, какие варианты шейдера Unity Для получения информации о работе ключевые слова локального шейдера и глобальные ключевые слова шейдера и как они взаимодействуют, см. Использование ключевых слов с C# сценарии.keywordSpace представляет все ключевые слова, объявленные в исходном файле для вычислительного шейдера. Информацию о декларировании и использовании ключевых слов шейдера в исходных файлах шейдера см. Ключевые слова шейдера.
Этот пример перебирает локальные ключевые слова шейдера в локальном пространстве ключевых слов вычислительного шейдера. Он определяет, переопределены ли они глобальным ключевым словом шейдера, и выводит их состояние.
using UnityEngine; using UnityEngine.Rendering;
public class Example : MonoBehaviour { public ComputeShader computeShader;
void Start() { CheckShaderKeywordState(); }
void CheckShaderKeywordState() { // Get all the local keywords that affect the Compute Shader var keywordSpace = computeShader.keywordSpace;
// Iterate over the local keywords foreach (var localKeyword in keywordSpace.keywords) { // If the local keyword is overridable, // and a global keyword with the same name exists and is enabled, // then Unity uses the global keyword state if (localKeyword.isOverridable && Shader.IsKeywordEnabled(localKeyword.name)) { Debug.Log("Local keyword with name of " + localKeyword.name + " is overridden by a global keyword, and is enabled"); } // Otherwise, Unity uses the local keyword state else { var state = computeShader.IsKeywordEnabled(localKeyword) ? "enabled" : "disabled"; Debug.Log("Local keyword with name of " + localKeyword.name + " is " + state); } } } }
Дополнительные ресурсы: Варианты шейдеров и ключевые слова, LocalKeyword, GlobalKeyword, EnableKeyword, DisableKeyword, SetKeyword, IsKeywordEnabled, enabledKeywords, shaderKeywords.