Объявление
public void EnableKeyword(ref Rendering.LocalKeyword keyword);public void EnableKeyword(string keyword);
Параметры
keyword | LocalKeyword для включения. |
keyword | Имя LocalKeyword для включения. |
Описание
Включает локальное ключевое слово шейдера для этого материала.
Ключевые слова шейдера определяют, какие варианты шейдера использует Unity. Информацию о работе с ключевыми словами локального шейдера и глобальном ключевом слове шейдера и о том, как они взаимодействуют, см. в разделе Использование ключевых слов шейдера со сценариями C#.
Если вы передаете LocalKeyword, но его нет в Shader.keywordSpace для шейдера что этот материал использует, эта функция не имеет никакого эффекта. Если вы передаете строку, а LocalKeyword с таким именем
не существует в Shader.keywordSpace для шейдера, который использует этот материал, эта функция не действует.
Версия этой функции, принимающая в качестве параметра строку, работает медленнее, чем версия, принимающая LocalKeyword. Если вы вызываете эту функцию более одного раза, рекомендуется создать структуру LocalKeyword, кэшировать ее и использовать.
Примечание. LocalKeyword
относится к одному Shader или экземпляр ComputeShader. Вы не можете использовать его с другими экземплярами Shader или ComputeShader, даже если они объявляют ключевые слова с тем же именем.
В следующем примере создается структура LocalKeyword
с именем EXAMPLE_FEATURE_ON
и кэшируется. Он предоставляет функции для его включения и отключения.
using UnityEngine;
using UnityEngine.Rendering;
public class MaterialKeywordExample : MonoBehaviour
{
public Material material;
private LocalKeyword exampleFeatureKeyword;
void Start()
{
// Получить экземпляр класса Shader, который использует этот материал
var shader = material.shader;
// Создайте и кэшируйте LocalKeyword.
exampleFeatureKeyword = new LocalKeyword(shader, "EXAMPLE_FEATURE_ON");
}
public void EnableExampleFeature()
{
material.EnableKeyword(exampleFeatureKeyword);
}
public void DisableExampleFeature()
{
material.DisableKeyword(exampleFeatureKeyword);
}
}
Смотрите так же: Shader variants and keywords, LocalKeyword, GlobalKeyword, DisableKeyword, SetKeyword, Shader.keywordSpace, IsKeywordEnabled, enabledKeywords, shaderKeywords.