Material.SetKeyword
Declaration
public void SetKeyword(ref Rendering.LocalKeyword keyword, bool value);Параметры
| Параметр | Описание |
|---|---|
| ключевое слово | LocalKeyword для включения или отключения. |
| значение | Требуемое состояние ключевого слова. |
Описание
Задаёт состояние локального ключевого слова шейдера для этого материала.
Ключевые слова Shader определяют, какие варианты shader использует Unity. Информацию о работе с ключевыми словами локального shader и глобального shader и о том, как они взаимодействуют, см. в Использование ключевых слов shader со скриптами C#.
Когда value является true, эта функция вызывает EnableKeyword. В противном случае она вызывает DisableKeyword.
Если LocalKeyword не существует в Shader.keywordSpace для shader, который использует этот материал, эта функция не имеет эффекта.
В следующем примере создается и кэшируется LocalKeywordи предоставляется функция для переключения его состояния.
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 ToggleExampleFeature() { // Get the current state of the local keyword bool state = material.IsKeywordEnabled(exampleFeatureKeyword);
// Toggle the state material.SetKeyword(exampleFeatureKeyword, !state); } }
Дополнительные ресурсы: Варианты шейдеров и ключевые слова, LocalKeyword, GlobalKeyword, EnableKeyword, DisableKeyword, Shader.keywordSpace, IsKeywordEnabled, enabledKeywords, shaderKeywords.