# PlatformKeywordSet

> A collection of ShaderKeyword that represents a specific platform variant.

## Definition

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

```csharp
public struct PlatformKeywordSet
```

## Remarks

A `PlatformKeywordKeywordSet` represents a part of one [shader variant](/engine/6000.5/manual/materials-and-shaders/shaders/shader-troubleshooting/shader-reducing/shader-variants/shader-variants.md), a unique combination of keywords you can use to enable or disable functionality within a shader.

`PlatformKeywordSet` mirrors [ShaderKeywordSet](/engine/6000.5/script-reference/unityengine/rendering/shaderkeywordset.md)'s functionality, but does not contain user-defined keywords. Instead, this struct provides information on the rendering capabilities and rendering API of the target platform. For example, [framebuffer fetch](/engine/6000.5/manual/materials-and-shaders/shaders/writing-custom/shader-writing/sl/writing-shader-writing-shader-programs-hlsl/sl-platform-differences.md) (represented via the keyword [BuiltinShaderDefine.UNITY\_FRAMEBUFFER\_FETCH\_AVAILABLE](/engine/6000.5/script-reference/unityengine/rendering/builtinshaderdefine/unity-framebuffer-fetch-available.md)) may be available when compiling a shader for [BuildTarget.Android](/engine/6000.5/script-reference/unityeditor/buildtarget/android.md), but not for [BuildTarget.StandaloneWindows](/engine/6000.5/script-reference/unityeditor/buildtarget/standalonewindows.md).

For more information on shader variants and keywords, refer to Shader variants and keywords and [Changing how shaders work via branching and keywords](/engine/6000.5/manual/materials-and-shaders/shaders/writing-custom/shader-writing/sl-multiple-program-variants.md).

Additional Resources: [ShaderKeyword](/engine/6000.5/script-reference/unityengine/rendering/shaderkeyword.md), [Shader.EnableKeyword](/engine/6000.5/script-reference/unityengine/shader/enablekeyword.md), [Shader.EnableKeyword](/engine/6000.5/script-reference/unityengine/shader/enablekeyword.md).

## Methods

| Method                                                                                             | Description                                         |
| -------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| [Disable](/engine/6000.5/script-reference/unityengine/rendering/platformkeywordset/disable.md)     | Disable a specific shader keyword.                  |
| [Enable](/engine/6000.5/script-reference/unityengine/rendering/platformkeywordset/enable.md)       | Enable a specific shader keyword.                   |
| [IsEnabled](/engine/6000.5/script-reference/unityengine/rendering/platformkeywordset/isenabled.md) | Check whether a specific shader keyword is enabled. |
