LocalKeywordSpace
структура в UnityEngine.Rendering
Выполнено в:UnityEngine.CoreModule
Описание
Представляет локальное пространство ключевых слов Shader, ComputeShader или RayTracingShader.
Ключевые слова шейдера определяют, какие варианты шейдера Unity Для информации о работе с локальными ключевыми словами шейдера и глобальные ключевые слова шейдера и как они взаимодействуют, см. Использование ключевых слов с C# сценарии.
Когда вы объявляете шейдер ключевое слово в исходном файле для Shader, ComputeShader или RayTracingShader, Unity представляет ключевое слово с LocalKeyword и хранит его в LocalKeywordSpace.
Какие ключевые слова содержатся в пространстве, зависит от типа шейдера:
- В отношении Shaderсм. Shader.keywordSpace.
- В отношении ComputeShaderсм. ComputeShader.keywordSpace.
- В отношении RayTracingShaderсм. RayTracingShader.keywordSpace.
Дополнительные ресурсы: Введение в варианты шейдеров, LocalKeyword, GlobalKeyword, ComputeShader.keywordSpace, RayTracingShader.keywordSpace, Shader.keywordSpace.
using UnityEngine; using UnityEngine.Rendering; // This example iterates over the local shader keywords in the local // keyword space for a graphics shader. It determines whether each // keyword is overridden by a global shader keyword and prints its // state. public class KeywordExample : MonoBehaviour { public Material material; void Start() { CheckShaderKeywordState(); } void CheckShaderKeywordState() { // Get the instance of the Shader class that the material uses Shader shader = material.shader; // Get all the local keywords that affect the Shader LocalKeywordSpace keywordSpace = shader.keywordSpace; // Iterate over the local keywords foreach (LocalKeyword 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 { string state = material.IsKeywordEnabled(localKeyword) ? "enabled" : "disabled"; Debug.Log("Local keyword with name of " + localKeyword.name + " is " + state); } } } }
Свойства
| Свойство | Описание |
|---|---|
| keywordCount | Число ключевых слов локальных шейдеров в этом локальном пространстве ключевых слов. (Только чтение) |
| keywordNames | Массив, содержащий имена всех ключевых слов локальных шейдеров в этом локальном пространстве ключевых слов. (Только чтение) |
| keywords | Массив, содержащий все структуры LocalKeyword в этом локальном пространстве ключевых слов. (Только для чтения) |
Открытые методы
| Метод | Описание |
|---|---|
| FindKeyword | Поиск ключевого слова локального шейдера с заданным именем в пространстве ключевых слов. |
Операторы
| Оператор | Описание |
|---|---|
| оператор!= | Возвращает true, если пространства ключевых слов локального шейдера не совпадают. В противном случае возвращает false. |
| оператор == | Возвращает true, если пространства ключевых слов локального шейдера одинаковы. В противном случае возвращает false. |