# GetControlID

> Get a unique ID for a control, using an integer as a hint to help ensure correct matching of IDs to controls.

## Definition

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

## GetControlID(int, FocusType, Rect)

Get a unique ID for a control, using an integer as a hint to help ensure correct matching of IDs to controls.

```csharp
public static int GetControlID(int hint, FocusType focusType, Rect rect)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): **** (\[FocusType]\(/engine/6000.7/script-reference/unityengine/focustype)): **** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)):&#x20;

### Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |

## GetControlID(FocusType)

Get a unique ID for a control.

```csharp
public static int GetControlID(FocusType focus)
```

### Parameters

**** (\[FocusType]\(/engine/6000.7/script-reference/unityengine/focustype)):&#x20;

### Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    // Prints a not used ID that can be assigned to a control

    void OnGUI()
    {
        // Gets a ID for a control that cannot receive keyboard focus (A button)
        Debug.Log("Available id: " + GUIUtility.GetControlID(FocusType.Passive));
    }
}
```

## GetControlID(GUIContent, FocusType)

Get a unique ID for a control, using a the label content as a hint to help ensure correct matching of IDs to controls.

```csharp
public static int GetControlID(GUIContent contents, FocusType focus)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.7/script-reference/unityengine/guicontent)): **** (\[FocusType]\(/engine/6000.7/script-reference/unityengine/focustype)):&#x20;

### Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |

## GetControlID(FocusType, Rect)

Get a unique ID for a control.

```csharp
public static int GetControlID(FocusType focus, Rect position)
```

### Parameters

**** (\[FocusType]\(/engine/6000.7/script-reference/unityengine/focustype)): **** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)):&#x20;

### Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |

### Examples

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    // Prints a not used ID that can be assigned to a control

    void OnGUI()
    {
        // Gets a ID for a control that cannot receive keyboard focus (A button)
        Debug.Log("Available id: " + GUIUtility.GetControlID(FocusType.Passive));
    }
}
```

## GetControlID(GUIContent, FocusType, Rect)

Get a unique ID for a control, using a the label content as a hint to help ensure correct matching of IDs to controls.

```csharp
public static int GetControlID(GUIContent contents, FocusType focus, Rect position)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.7/script-reference/unityengine/guicontent)): **** (\[FocusType]\(/engine/6000.7/script-reference/unityengine/focustype)): **** (\[Rect]\(/engine/6000.7/script-reference/unityengine/rect)):&#x20;

### Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |

## GetControlID(int, FocusType)

Get a unique ID for a control, using an integer as a hint to help ensure correct matching of IDs to controls.

```csharp
public static int GetControlID(int hint, FocusType focus)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): **** (\[FocusType]\(/engine/6000.7/script-reference/unityengine/focustype)):&#x20;

### Returns

| Type                                                       | Description |
| ---------------------------------------------------------- | ----------- |
| [int](https://learn.microsoft.com/dotnet/api/system.int32) |             |
