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

LocalKeywordSpace

структура в UnityEngine.Rendering

Выполнено в:UnityEngine.CoreModule

Описание

Представляет локальное пространство ключевых слов Shader, ComputeShader или RayTracingShader.

Ключевые слова шейдера определяют, какие варианты шейдера Unity Для информации о работе с локальными ключевыми словами шейдера и глобальные ключевые слова шейдера и как они взаимодействуют, см. Использование ключевых слов с C# сценарии.

Когда вы объявляете шейдер ключевое слово в исходном файле для Shader, ComputeShader или RayTracingShader, Unity представляет ключевое слово с LocalKeyword и хранит его в LocalKeywordSpace.

Какие ключевые слова содержатся в пространстве, зависит от типа шейдера:

Дополнительные ресурсы: Введение в варианты шейдеров, 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.