# NavigationEventBase<T>

> Navigation events abstract base class. By default, navigation events trickle down and bubble up. Disabled elements won't receive these events.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.UIElements](/engine/6000.5/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule
* **Inherits from:** [EventBase\<T>](/engine/6000.5/script-reference/unityengine/uielements/eventbase1.md)
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable), [INavigationEvent](/engine/6000.5/script-reference/unityengine/uielements/inavigationevent.md)

```csharp
public abstract class NavigationEventBase<T> : EventBase<T>, IDisposable, INavigationEvent where T : NavigationEventBase<T>, new()
```

## Constructors

| Constructor                                                                                                     | Description  |
| --------------------------------------------------------------------------------------------------------------- | ------------ |
| [NavigationEventBase\`1()](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/ctor.md) | Constructor. |

## Properties

| Property                                                                                                | Description                                                                                                                                          |
| ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| [actionKey](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/actionkey.md)   | Gets a boolean value that indicates whether the platform-specific action key is pressed. True means the action key is pressed. False means it isn't. |
| [altKey](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/altkey.md)         | Gets a boolean value that indicates whether the Alt key is pressed. True means the Alt key is pressed. False means it isn't.                         |
| [commandKey](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/commandkey.md) | Gets a boolean value that indicates whether the Windows/Cmd key is pressed. True means the Windows/Cmd key is pressed. False means it isn't.         |
| [ctrlKey](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/ctrlkey.md)       | Gets a boolean value that indicates whether the Ctrl key is pressed. True means the Ctrl key is pressed. False means it isn't.                       |
| [modifiers](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/modifiers.md)   | Gets flags that indicate whether modifier keys (Alt, Ctrl, Shift, Windows/Cmd) are pressed.                                                          |
| [shiftKey](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/shiftkey.md)     | Gets a boolean value that indicates whether the Shift key is pressed. True means the Shift key is pressed. False means it isn't.                     |

## Static Methods

| Method                                                                                                | Description                                                                                                                                                                                                         |
| ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [GetPooled](/engine/6000.5/script-reference/unityengine/uielements/navigationeventbase1/getpooled.md) | Gets an event from the event pool and initializes it with the given values. Use this function instead of creating new events. Events obtained from this method should be released back to the pool using Dispose(). |

## Inheritance

**Inherited Members:**

* [EventBase\<T>.SetCreateFunction(Func\<T>)](/engine/6000.5/script-reference/unityengine/uielements/eventbase1/setcreatefunction.md)
* [EventBase\<T>.TypeId()](/engine/6000.5/script-reference/unityengine/uielements/eventbase1/typeid.md)
* [EventBase\<T>.GetPooled()](/engine/6000.5/script-reference/unityengine/uielements/eventbase1/getpooled.md)
* [EventBase\<T>.Dispose()](/engine/6000.5/script-reference/unityengine/uielements/eventbase1/dispose.md)
* [EventBase\<T>.eventTypeId](/engine/6000.5/script-reference/unityengine/uielements/eventbase1/eventtypeid.md)
* [EventBase.RegisterEventType()](/engine/6000.5/script-reference/unityengine/uielements/eventbase/registereventtype.md)
* [EventBase.PreDispatch(IPanel)](/engine/6000.5/script-reference/unityengine/uielements/eventbase/predispatch.md#predispatch\(ipanel\))
* [EventBase.PostDispatch(IPanel)](/engine/6000.5/script-reference/unityengine/uielements/eventbase/postdispatch.md#postdispatch\(ipanel\))
* [EventBase.StopPropagation()](/engine/6000.5/script-reference/unityengine/uielements/eventbase/stoppropagation.md)
* [EventBase.StopImmediatePropagation()](/engine/6000.5/script-reference/unityengine/uielements/eventbase/stopimmediatepropagation.md)
* [EventBase.timestamp](/engine/6000.5/script-reference/unityengine/uielements/eventbase/timestamp.md)
* [EventBase.bubbles](/engine/6000.5/script-reference/unityengine/uielements/eventbase/bubbles.md)
* [EventBase.tricklesDown](/engine/6000.5/script-reference/unityengine/uielements/eventbase/tricklesdown.md)
* [EventBase.ignoreDisabledElements](/engine/6000.5/script-reference/unityengine/uielements/eventbase/ignoredisabledelements.md)
* [EventBase.target](/engine/6000.5/script-reference/unityengine/uielements/eventbase/target.md)
* [EventBase.isPropagationStopped](/engine/6000.5/script-reference/unityengine/uielements/eventbase/ispropagationstopped.md)
* [EventBase.isImmediatePropagationStopped](/engine/6000.5/script-reference/unityengine/uielements/eventbase/isimmediatepropagationstopped.md)
* [EventBase.propagationPhase](/engine/6000.5/script-reference/unityengine/uielements/eventbase/propagationphase.md)
* [EventBase.currentTarget](/engine/6000.5/script-reference/unityengine/uielements/eventbase/currenttarget.md)
* [EventBase.dispatch](/engine/6000.5/script-reference/unityengine/uielements/eventbase/dispatch.md)
* [EventBase.imguiEvent](/engine/6000.5/script-reference/unityengine/uielements/eventbase/imguievent.md)
* [EventBase.originalMousePosition](/engine/6000.5/script-reference/unityengine/uielements/eventbase/originalmouseposition.md)
* [EventBase.pooled](/engine/6000.5/script-reference/unityengine/uielements/eventbase/pooled.md)
