# PassHasKeyword

> Checks whether a local shader keyword is valid for a Pass within a particular shader.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.3/script-reference/unityeditor.md)
* **Assembly:** UnityEditor

## PassHasKeyword(Shader, PassIdentifier, LocalKeyword)

Checks whether a local shader keyword is valid for a Pass within a particular shader.

```csharp
public static bool PassHasKeyword(Shader s, in PassIdentifier passIdentifier, in LocalKeyword keyword)
```

### Parameters

**** (\[Shader]\(/engine/6000.3/script-reference/unityengine/shader)): The shader the Pass belongs to.**** (\[PassIdentifier]\(/engine/6000.3/script-reference/unityengine/rendering/passidentifier)): The identifier of a Pass within the given shader.**** (\[LocalKeyword]\(/engine/6000.3/script-reference/unityengine/rendering/localkeyword)): The local shader keyword to check.

### Returns

| Type                                                          | Description                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if the keyword is valid for the given Pass. Otherwise, returns false. If the [PassIdentifier](/engine/6000.3/script-reference/unityengine/rendering/passidentifier.md) you use is invalid, this function returns false and Unity displays an error in the Console window. |

### Remarks

Additional Resources: [Pass](/engine/6000.3/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-pass/sl-pass.md).

## PassHasKeyword(Shader, PassIdentifier, LocalKeyword, ShaderType)

Checks whether a local shader keyword is valid for a particular shader stage of a Pass within a particular shader.

```csharp
public static bool PassHasKeyword(Shader s, in PassIdentifier passIdentifier, in LocalKeyword keyword, ShaderType shaderType)
```

### Parameters

**** (\[Shader]\(/engine/6000.3/script-reference/unityengine/shader)): The shader the Pass belongs to.**** (\[PassIdentifier]\(/engine/6000.3/script-reference/unityengine/rendering/passidentifier)): The identifier of a Pass within the given shader.**** (\[LocalKeyword]\(/engine/6000.3/script-reference/unityengine/rendering/localkeyword)): The local shader keyword to check.**** (\[ShaderType]\(/engine/6000.3/script-reference/unityeditor/rendering/shadertype)): The shader stage of the given pass.

### Returns

| Type                                                          | Description                                                                                                                                                                                                                                                                                                |
| ------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if the keyword is valid for the given shader stage of the Pass. Otherwise, returns false. If the [PassIdentifier](/engine/6000.3/script-reference/unityengine/rendering/passidentifier.md) you use is invalid, this function returns false and Unity displays an error in the Console window. |

### Remarks

Additional Resources: [Pass](/engine/6000.3/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-pass/sl-pass.md).

## PassHasKeyword(Shader, PassIdentifier, LocalKeyword, ShaderType, ShaderCompilerPlatform)

Checks whether a local shader keyword is valid for a particular shader stage of a Pass within a particular shader for the given shader compiler platform.

```csharp
public static bool PassHasKeyword(Shader s, in PassIdentifier passIdentifier, in LocalKeyword keyword, ShaderType shaderType, ShaderCompilerPlatform shaderCompilerPlatform)
```

### Parameters

**** (\[Shader]\(/engine/6000.3/script-reference/unityengine/shader)): The shader the Pass belongs to.**** (\[PassIdentifier]\(/engine/6000.3/script-reference/unityengine/rendering/passidentifier)): The identifier of a Pass within the given shader.**** (\[LocalKeyword]\(/engine/6000.3/script-reference/unityengine/rendering/localkeyword)): The local shader keyword to check.**** (\[ShaderType]\(/engine/6000.3/script-reference/unityeditor/rendering/shadertype)): The shader stage of the given pass.**** (\[ShaderCompilerPlatform]\(/engine/6000.3/script-reference/unityeditor/rendering/shadercompilerplatform)): The shader compiler platform to check against.

### Returns

| Type                                                          | Description                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) | Returns true if the keyword is valid for the given shader stage of the Pass for the given ShaderCompilerPlatform. Otherwise, returns false. If the [PassIdentifier](/engine/6000.3/script-reference/unityengine/rendering/passidentifier.md) you use is invalid, this function returns false and Unity displays an error in the Console window. |

### Remarks

Some shader compiler platforms combine several shader stages in one. This method overload ensures that correct data is returned for all shader compiler platforms.

Additional Resources: [Pass](/engine/6000.3/manual/materials-and-shaders/shaders/reference/sl-reference/sl-sub-shader-pass/sl-pass.md).
