Material.EnableKeyword
Declaration
public void EnableKeyword(ref Rendering.LocalKeyword keyword);public void EnableKeyword(string keyword);Параметры
| Параметр | Описание |
|---|---|
| ключевое слово | LocalKeyword для включения. |
| ключевое слово | Имя LocalKeyword для включения. |
Описание
Включает локальное ключевое слово шейдера для этого материала.
Ключевые слова шейдера определяют, какие варианты шейдера использует Unity. ключевые слова локального шейдера и глобальные ключевые слова шейдера и как они взаимодействуют, см. Использование ключевых слов шейдера со скриптами C#.
Если вы проходите в LocalKeyword и не существует в международном праве. Shader.keywordSpace для шейдера, используемого этим материалом, эта функция не имеет никакого эффекта. Если вы передаете строку и LocalKeyword с этим name не существует в Shader.keywordSpace для шейдера, который использует этот материал, эта функция не имеет никакого эффекта.
Версия этой функции, которая принимает строку в качестве параметра, медленнее версии, которая принимает строку в качестве параметра. LocalKeyword. Если вы вызываете эту функцию более одного раза, то лучше всего создать LocalKeyword структуру, кэшируйте её и используйте.
Примечание: A 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() { // Get the instance of the Shader class that this material uses var shader = material.shader;
// Create and cache the LocalKeyword exampleFeatureKeyword = new LocalKeyword(shader, "EXAMPLE_FEATURE_ON"); }
public void EnableExampleFeature() { material.EnableKeyword(exampleFeatureKeyword); }
public void DisableExampleFeature() { material.DisableKeyword(exampleFeatureKeyword); } }
Дополнительные ресурсы: Варианты шейдеров и ключевые слова, LocalKeyword, GlobalKeyword, DisableKeyword, SetKeyword, Shader.keywordSpace, IsKeywordEnabled, enabledKeywords, shaderKeywords.