# IsKeywordEnabled

> Checks whether a global shader keyword is enabled.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## IsKeywordEnabled(string)

Checks whether a global shader keyword is enabled.

```csharp
public static bool IsKeywordEnabled(string keyword)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The name of the [GlobalKeyword](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md) to check.

### Returns

| Type                                                          | Description                                                                                                   |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if a global shader keyword with the given name exists, and is enabled. Otherwise, returns false. |

### Remarks

If a global shader keyword with the given name does not exist, this function returns false. Otherwise, this version of `IsKeywordEnabled` behaves the same as the version that has a [GlobalKeyword](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md) as its parameter.

## IsKeywordEnabled(GlobalKeyword)

Checks whether a global shader keyword is enabled.

```csharp
public static bool IsKeywordEnabled(in GlobalKeyword keyword)
```

### Parameters

**** (\[GlobalKeyword]\(/engine/6000.5/script-reference/unityengine/rendering/globalkeyword)): The [GlobalKeyword](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md) to check.

### Returns

| Type                                                          | Description                                                                           |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if the given global shader keyword is enabled. Otherwise, returns false. |

### Remarks

Shader keywords determine which shader variants Unity uses. For information on working with [local shader keywords](/engine/6000.5/script-reference/unityengine/rendering/localkeyword.md) and [global shader keywords](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md) and how they interact, see [Using shader keywords with C# scripts](/engine/6000.5/manual/materials-and-shaders/shaders/writing-custom/shader-writing/sl-multiple-program-variants/shader-keywords-scripts.md).

If you pass a string and a [GlobalKeyword](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md) with that `name` does not exist in the [Shader.keywordSpace](/engine/6000.5/script-reference/unityengine/shader/keywordspace.md), this function returns `false`.

The version of this function that takes a string as a parameter is slower than the version that takes a [GlobalKeyword](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md). If you call this function more than once, it is best practice to create a [GlobalKeyword](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md) struct, cache it, and use that.

This example checks whether a global shader keyword with the name `EXAMPLE_FEATURE_ON` is enabled.

```csharp
using UnityEngine;
using UnityEngine.Rendering;

public class GlobalKeywordExample : MonoBehaviour
{
    private GlobalKeyword exampleFeatureKeyword;

    private void Start()
    {
        exampleFeatureKeyword = GlobalKeyword.Create("EXAMPLE_FEATURE_ON");

        if (Shader.IsKeywordEnabled(exampleFeatureKeyword))
        {
            Debug.Log("Global shader keyword " + exampleFeatureKeyword.name + " is currently enabled");
        }
    }
}
```

Additional Resources: Shader variants and keywords, [LocalKeyword](/engine/6000.5/script-reference/unityengine/rendering/localkeyword.md), [GlobalKeyword](/engine/6000.5/script-reference/unityengine/rendering/globalkeyword.md), [Shader.EnableKeyword](/engine/6000.5/script-reference/unityengine/shader/enablekeyword.md), [Shader.DisableKeyword](/engine/6000.5/script-reference/unityengine/shader/disablekeyword.md), [Shader.SetKeyword](/engine/6000.5/script-reference/unityengine/shader/setkeyword.md), [Shader.enabledGlobalKeywords](/engine/6000.5/script-reference/unityengine/shader/enabledglobalkeywords.md), [Shader.globalKeywords](/engine/6000.5/script-reference/unityengine/shader/globalkeywords.md).
