# MaskField

> Make a field for masks.

## Definition

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

## MaskField(GUIContent, int, string\[], GUIStyle, GUILayoutOption\[])

Make a field for masks.

```csharp
public static int MaskField(GUIContent label, int mask, string[] displayedOptions, GUIStyle style, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.5/script-reference/unityengine/guicontent)): Prefix label of the field.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current mask to display.**** (\[string\[]]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[GUIStyle]\(/engine/6000.5/script-reference/unityengine/guistyle)): **** (\[GUILayoutOption\[]]\(/engine/6000.5/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.5/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.5/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.5/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.5/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.5/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.5/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.5/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.5/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                       | Description                     |
| ---------------------------------------------------------- | ------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | The value modified by the user. |

### Remarks

![MaskField (MaskField)](/api/media?file=/engine/6000.5/media/images/MaskField.png)

*Simple window that shows the mask field.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class MaskFieldExample : EditorWindow
{
    static int flags = 0;
    static string[] options = new string[] {"CanJump", "CanShoot", "CanSwim"};

    [MenuItem("Examples/Mask Field usage")]
    static void Init()
    {
        MaskFieldExample window = (MaskFieldExample)GetWindow(typeof(MaskFieldExample));
        window.Show();
    }

    void OnGUI()
    {
        flags = EditorGUILayout.MaskField("Player Flags", flags, options);

        // Display the flags in disabled toggles
        GUI.enabled = false;
        for (var i = 0; i < options.Length; i++)
        {
            var value = (flags & (1 << i)) != 0;
            EditorGUILayout.Toggle(options[i], value);
        }
        GUI.enabled = true;
    }
}
```

## MaskField(string, int, string\[], GUIStyle, GUILayoutOption\[])

Make a field for masks.

```csharp
public static int MaskField(string label, int mask, string[] displayedOptions, GUIStyle style, params GUILayoutOption[] options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Prefix label of the field.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current mask to display.**** (\[string\[]]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[GUIStyle]\(/engine/6000.5/script-reference/unityengine/guistyle)): **** (\[GUILayoutOption\[]]\(/engine/6000.5/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.5/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.5/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.5/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.5/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.5/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.5/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.5/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.5/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                       | Description                     |
| ---------------------------------------------------------- | ------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | The value modified by the user. |

### Remarks

![MaskField (MaskField)](/api/media?file=/engine/6000.5/media/images/MaskField.png)

*Simple window that shows the mask field.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class MaskFieldExample : EditorWindow
{
    static int flags = 0;
    static string[] options = new string[] {"CanJump", "CanShoot", "CanSwim"};

    [MenuItem("Examples/Mask Field usage")]
    static void Init()
    {
        MaskFieldExample window = (MaskFieldExample)GetWindow(typeof(MaskFieldExample));
        window.Show();
    }

    void OnGUI()
    {
        flags = EditorGUILayout.MaskField("Player Flags", flags, options);

        // Display the flags in disabled toggles
        GUI.enabled = false;
        for (var i = 0; i < options.Length; i++)
        {
            var value = (flags & (1 << i)) != 0;
            EditorGUILayout.Toggle(options[i], value);
        }
        GUI.enabled = true;
    }
}
```

## MaskField(GUIContent, int, string\[], GUILayoutOption\[])

Make a field for masks.

```csharp
public static int MaskField(GUIContent label, int mask, string[] displayedOptions, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.5/script-reference/unityengine/guicontent)): Prefix label of the field.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current mask to display.**** (\[string\[]]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[GUILayoutOption\[]]\(/engine/6000.5/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.5/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.5/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.5/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.5/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.5/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.5/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.5/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.5/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                       | Description                     |
| ---------------------------------------------------------- | ------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | The value modified by the user. |

### Remarks

![MaskField (MaskField)](/api/media?file=/engine/6000.5/media/images/MaskField.png)

*Simple window that shows the mask field.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class MaskFieldExample : EditorWindow
{
    static int flags = 0;
    static string[] options = new string[] {"CanJump", "CanShoot", "CanSwim"};

    [MenuItem("Examples/Mask Field usage")]
    static void Init()
    {
        MaskFieldExample window = (MaskFieldExample)GetWindow(typeof(MaskFieldExample));
        window.Show();
    }

    void OnGUI()
    {
        flags = EditorGUILayout.MaskField("Player Flags", flags, options);

        // Display the flags in disabled toggles
        GUI.enabled = false;
        for (var i = 0; i < options.Length; i++)
        {
            var value = (flags & (1 << i)) != 0;
            EditorGUILayout.Toggle(options[i], value);
        }
        GUI.enabled = true;
    }
}
```

## MaskField(string, int, string\[], GUILayoutOption\[])

Make a field for masks.

```csharp
public static int MaskField(string label, int mask, string[] displayedOptions, params GUILayoutOption[] options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Prefix label of the field.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current mask to display.**** (\[string\[]]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[GUILayoutOption\[]]\(/engine/6000.5/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.5/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.5/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.5/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.5/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.5/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.5/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.5/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.5/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                       | Description                     |
| ---------------------------------------------------------- | ------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | The value modified by the user. |

### Remarks

![MaskField (MaskField)](/api/media?file=/engine/6000.5/media/images/MaskField.png)

*Simple window that shows the mask field.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class MaskFieldExample : EditorWindow
{
    static int flags = 0;
    static string[] options = new string[] {"CanJump", "CanShoot", "CanSwim"};

    [MenuItem("Examples/Mask Field usage")]
    static void Init()
    {
        MaskFieldExample window = (MaskFieldExample)GetWindow(typeof(MaskFieldExample));
        window.Show();
    }

    void OnGUI()
    {
        flags = EditorGUILayout.MaskField("Player Flags", flags, options);

        // Display the flags in disabled toggles
        GUI.enabled = false;
        for (var i = 0; i < options.Length; i++)
        {
            var value = (flags & (1 << i)) != 0;
            EditorGUILayout.Toggle(options[i], value);
        }
        GUI.enabled = true;
    }
}
```

## MaskField(int, string\[], GUIStyle, GUILayoutOption\[])

Make a field for masks.

```csharp
public static int MaskField(int mask, string[] displayedOptions, GUIStyle style, params GUILayoutOption[] options)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current mask to display.**** (\[string\[]]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[GUIStyle]\(/engine/6000.5/script-reference/unityengine/guistyle)): **** (\[GUILayoutOption\[]]\(/engine/6000.5/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.5/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.5/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.5/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.5/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.5/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.5/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.5/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.5/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                       | Description                     |
| ---------------------------------------------------------- | ------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | The value modified by the user. |

### Remarks

![MaskField (MaskField)](/api/media?file=/engine/6000.5/media/images/MaskField.png)

*Simple window that shows the mask field.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class MaskFieldExample : EditorWindow
{
    static int flags = 0;
    static string[] options = new string[] {"CanJump", "CanShoot", "CanSwim"};

    [MenuItem("Examples/Mask Field usage")]
    static void Init()
    {
        MaskFieldExample window = (MaskFieldExample)GetWindow(typeof(MaskFieldExample));
        window.Show();
    }

    void OnGUI()
    {
        flags = EditorGUILayout.MaskField("Player Flags", flags, options);

        // Display the flags in disabled toggles
        GUI.enabled = false;
        for (var i = 0; i < options.Length; i++)
        {
            var value = (flags & (1 << i)) != 0;
            EditorGUILayout.Toggle(options[i], value);
        }
        GUI.enabled = true;
    }
}
```

## MaskField(int, string\[], GUILayoutOption\[])

Make a field for masks.

```csharp
public static int MaskField(int mask, string[] displayedOptions, params GUILayoutOption[] options)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The current mask to display.**** (\[string\[]]\(https\://learn.microsoft.com/dotnet/api/system.string)): **** (\[GUILayoutOption\[]]\(/engine/6000.5/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.5/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.5/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.5/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.5/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.5/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.5/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.5/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.5/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                       | Description                     |
| ---------------------------------------------------------- | ------------------------------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) | The value modified by the user. |

### Remarks

![MaskField (MaskField)](/api/media?file=/engine/6000.5/media/images/MaskField.png)

*Simple window that shows the mask field.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class MaskFieldExample : EditorWindow
{
    static int flags = 0;
    static string[] options = new string[] {"CanJump", "CanShoot", "CanSwim"};

    [MenuItem("Examples/Mask Field usage")]
    static void Init()
    {
        MaskFieldExample window = (MaskFieldExample)GetWindow(typeof(MaskFieldExample));
        window.Show();
    }

    void OnGUI()
    {
        flags = EditorGUILayout.MaskField("Player Flags", flags, options);

        // Display the flags in disabled toggles
        GUI.enabled = false;
        for (var i = 0; i < options.Length; i++)
        {
            var value = (flags & (1 << i)) != 0;
            EditorGUILayout.Toggle(options[i], value);
        }
        GUI.enabled = true;
    }
}
```
