# GetPooled

> Gets an event from the event pool and initializes it with the given values. Use this function instead of creating new events. Events obtained using this method need to be released back to the pool. You can use Dispose() to release them.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.UIElements](/engine/6000.0/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule

## GetPooled(Event)

Gets an event from the event pool and initializes it with the given values. Use this function instead of creating new events. Events obtained using this method need to be released back to the pool. You can use `Dispose()` to release them.

```csharp
public static T GetPooled(Event systemEvent)
```

### Parameters

**** (\[Event]\(/engine/6000.0/script-reference/unityengine/event)): An IMGUI mouse event.

### Returns

| Type | Description           |
| ---- | --------------------- |
| T    | An initialized event. |

## GetPooled(Vector2, int, int, Vector2, EventModifiers)

Gets an event from the event pool and initializes it with the given values. Use this function instead of creating new events. Events obtained using this method need to be released back to the pool. You can use `Dispose()` to release them.

```csharp
public static T GetPooled(Vector2 position, int button, int clickCount, Vector2 delta, EventModifiers modifiers = EventModifiers.None)
```

### Parameters

**** (\[Vector2]\(/engine/6000.0/script-reference/unityengine/vector2)): The mouse position.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The mouse button pressed.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of consecutive mouse clicks received.**** (\[Vector2]\(/engine/6000.0/script-reference/unityengine/vector2)): The relative movement of the mouse compared to the mouse position when the last event was received.**** (\[EventModifiers]\(/engine/6000.0/script-reference/unityengine/eventmodifiers)): The modifier keys held down during the event.

### Returns

| Type | Description           |
| ---- | --------------------- |
| T    | An initialized event. |

## GetPooled(IMouseEvent)

Gets an event from the event pool and initializes it with the given values. Use this function instead of creating new events. Events obtained using this method need to be released back to the pool. You can use `Dispose()` to release them.

```csharp
public static T GetPooled(IMouseEvent triggerEvent)
```

### Parameters

**** (\[IMouseEvent]\(/engine/6000.0/script-reference/unityengine/uielements/imouseevent)): The event that sent this event.

### Returns

| Type | Description           |
| ---- | --------------------- |
| T    | An initialized event. |

## GetPooled(IPointerEvent)

Gets an event from the event pool and initializes it with the given values. Use this function instead of creating new events. Events obtained using this method need to be released back to the pool. You can use `Dispose()` to release them.

```csharp
protected static T GetPooled(IPointerEvent pointerEvent)
```

### Parameters

**** (\[IPointerEvent]\(/engine/6000.0/script-reference/unityengine/uielements/ipointerevent)): The pointer event that sent this event.

### Returns

| Type | Description           |
| ---- | --------------------- |
| T    | An initialized event. |
