# DrawGizmo

> Defines when the gizmo should be invoked for drawing.

## Definition

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

## DrawGizmo(GizmoType)

Defines when the gizmo should be invoked for drawing.

```csharp
public DrawGizmo(GizmoType gizmo)
```

### Parameters

**** (\[GizmoType]\(/engine/6000.7/script-reference/unityeditor/gizmotype)): Flags to denote when the gizmo should be drawn.

### Remarks

Additional Resources: [GizmoType](/engine/6000.7/script-reference/unityeditor/gizmotype.md), [DrawGizmo](/engine/6000.7/script-reference/unityeditor/drawgizmo.md).

### Examples

```csharp
using UnityEngine;
using UnityEditor;

// Draw an image above the light when the light is not selected
// The icon has to be stored in Assets/Gizmos

public class ExampleScript : MonoBehaviour
{
    // Draw an image above the light when the light is not selected
    [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)]
    static void drawGizmo1(Light light, GizmoType gizmoType)
    {
        Vector3 position = light.transform.position;

        Gizmos.DrawIcon(position + Vector3.up, "ninja.jpg");
    }

    // Place a red sphere around a selected light.
    // Surround the sphere dark shaded when not selected.
    [DrawGizmo(GizmoType.Selected | GizmoType.NonSelected)]
    static void drawGizmo2(Light light, GizmoType gizmoType)
    {
        Vector3 position = light.transform.position;

        if ((gizmoType & GizmoType.Selected) != 0)
        {
            Gizmos.color = Color.red;
        }
        else
        {
            Gizmos.color = Color.red * 0.5f;
        }
        Gizmos.DrawSphere(position , 1);
    }
}
```

## DrawGizmo(GizmoType, Type)

Same as above. `drawnGizmoType` determines of what type the object we are drawing the gizmo of has to be.

```csharp
public DrawGizmo(GizmoType gizmo, Type drawnGizmoType)
```

### Parameters

**** (\[GizmoType]\(/engine/6000.7/script-reference/unityeditor/gizmotype)): Flags to denote when the gizmo should be drawn.**** (\[Type]\(https\://learn.microsoft.com/dotnet/api/system.type)): Type of object for which the gizmo should be drawn.

### Remarks

If drawnGizmoType is null, the type will be determined from the first parameter of the draw gizmo method. If drawnGizmoType is not null, it must be the same type as, or a subtype of, the type of the first parameter.
