# DefineConstraints

> Allows you to specify a list of #define directives which controls whether your plug-in should be included.

## Definition

* **Type:** Property
* **Namespace:** [UnityEditor](/engine/6000.6/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public string[] DefineConstraints { get; set; }
```

### Remarks

You can set this property on each plug-in to control whether it should or shouldn't be included in your build according to the currently defined [define directives](/engine/6000.6/manual/scripting/compilation-and-code-reload/script-compilation/conditional-compilation/platform-dependent-compilation.md).

By specifying the names of one or more #define directives in an array in this property on your plug-in, you can specify that your plug-in should only be included in the build when your project defines one of those #define directives.

Each plug-in in your project can have its own unique array of define constraints. This way, you can have different plug-ins included or excluded when you publish different types of builds, by changing which #define directives are set when you build.

You can use the "!" character to specify that a plug-in should be included only when a certain #define directive is **not** set in the currently defined [define directives](/engine/6000.6/manual/scripting/compilation-and-code-reload/script-compilation/conditional-compilation/platform-dependent-compilation.md). For example, including "!ExampleDefine" in the list of define constraints means that the plug-in will not be included if "ExampleDefine" is set in the project's define directives.

Note: There is a similar feature which allows you to conditionally control which script assemblies are included. For more information, see the [Script Assemblies Manual Page](/engine/6000.6/manual/scripting/compilation-and-code-reload/script-compilation/assembly-definition-files.md).
