docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class EventSystem

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    UIBehaviour
    EventSystem
    Inherited Members
    UIBehaviour.Awake()
    UIBehaviour.OnDestroy()
    UIBehaviour.IsActive()
    UIBehaviour.OnValidate()
    UIBehaviour.Reset()
    UIBehaviour.OnRectTransformDimensionsChange()
    UIBehaviour.OnBeforeTransformParentChanged()
    UIBehaviour.OnTransformParentChanged()
    UIBehaviour.OnDidApplyAnimationProperties()
    UIBehaviour.OnCanvasGroupChanged()
    UIBehaviour.OnCanvasHierarchyChanged()
    UIBehaviour.IsDestroyed()
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.destroyCancellationToken
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, bool)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>(bool)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.GetComponentIndex()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: UnityEngine.EventSystems
    Assembly: UnityEngine.UI.dll
    Syntax
    [AddComponentMenu("Event/Event System")]
    [DisallowMultipleComponent]
    public class EventSystem : UIBehaviour

    Constructors

    EventSystem()

    Declaration
    protected EventSystem()

    Properties

    alreadySelecting

    Returns true if the EventSystem is already in a SetSelectedGameObject.

    Declaration
    public bool alreadySelecting { get; }
    Property Value
    Type Description
    bool

    current

    Return the current EventSystem.

    Declaration
    public static EventSystem current { get; set; }
    Property Value
    Type Description
    EventSystem

    currentInputModule

    The currently active EventSystems.BaseInputModule.

    Declaration
    public BaseInputModule currentInputModule { get; }
    Property Value
    Type Description
    BaseInputModule

    currentSelectedGameObject

    The GameObject currently considered active by the EventSystem.

    Declaration
    public GameObject currentSelectedGameObject { get; }
    Property Value
    Type Description
    GameObject

    firstSelectedGameObject

    Only one object can be selected at a time. Think: controller-selected button.

    Declaration
    public GameObject firstSelectedGameObject { get; set; }
    Property Value
    Type Description
    GameObject

    isFocused

    Flag to say whether the EventSystem thinks it should be paused or not based upon focused state.

    Declaration
    public bool isFocused { get; }
    Property Value
    Type Description
    bool
    Remarks

    Used to determine inside the individual InputModules if the module should be ticked while the application doesnt have focus.

    lastSelectedGameObject

    Declaration
    [Obsolete("lastSelectedGameObject is no longer supported")]
    public GameObject lastSelectedGameObject { get; }
    Property Value
    Type Description
    GameObject

    pixelDragThreshold

    The soft area for dragging in pixels.

    Declaration
    public int pixelDragThreshold { get; set; }
    Property Value
    Type Description
    int

    sendNavigationEvents

    Should the EventSystem allow navigation events (move / submit / cancel).

    Declaration
    public bool sendNavigationEvents { get; set; }
    Property Value
    Type Description
    bool

    Methods

    IsPointerOverGameObject()

    Is the pointer with the given ID over an EventSystem object?

    Declaration
    public bool IsPointerOverGameObject()
    Returns
    Type Description
    bool

    IsPointerOverGameObject(int)

    Is the pointer with the given ID over an EventSystem object?

    Declaration
    public bool IsPointerOverGameObject(int pointerId)
    Parameters
    Type Name Description
    int pointerId
    Returns
    Type Description
    bool
    Remarks

    If you use IsPointerOverGameObject() without a parameter, it points to the "left mouse button" (pointerId = -1); therefore when you use IsPointerOverGameObject for touch, you should consider passing a pointerId to it Note that for touch, IsPointerOverGameObject should be used with ''OnMouseDown()'' or ''Input.GetMouseButtonDown(0)'' or ''Input.GetTouch(0).phase == TouchPhase.Began''.

    Examples
    using UnityEngine;
    using System.Collections;
    using UnityEngine.EventSystems;
    
    public class MouseExample : MonoBehaviour
    {
        void Update()
        {
            // Check if the left mouse button was clicked
            if (Input.GetMouseButtonDown(0))
            {
                // Check if the mouse was clicked over a UI element
                if (EventSystem.current.IsPointerOverGameObject())
                {
                    Debug.Log("Clicked on the UI");
                }
            }
        }
    }

    OnApplicationFocus(bool)

    Declaration
    protected virtual void OnApplicationFocus(bool hasFocus)
    Parameters
    Type Name Description
    bool hasFocus

    OnDisable()

    Declaration
    protected override void OnDisable()
    Overrides
    UIBehaviour.OnDisable()

    OnEnable()

    Declaration
    protected override void OnEnable()
    Overrides
    UIBehaviour.OnEnable()

    RaycastAll(PointerEventData, List<RaycastResult>)

    Raycast into the scene using all configured BaseRaycasters.

    Declaration
    public void RaycastAll(PointerEventData eventData, List<RaycastResult> raycastResults)
    Parameters
    Type Name Description
    PointerEventData eventData

    Current pointer data.

    List<RaycastResult> raycastResults

    List of 'hits' to populate.

    SetSelectedGameObject(GameObject)

    Set the object as selected. Will send an OnDeselect the the old selected object and OnSelect to the new selected object.

    Declaration
    public void SetSelectedGameObject(GameObject selected)
    Parameters
    Type Name Description
    GameObject selected

    GameObject to select.

    SetSelectedGameObject(GameObject, BaseEventData)

    Set the object as selected. Will send an OnDeselect the the old selected object and OnSelect to the new selected object.

    Declaration
    public void SetSelectedGameObject(GameObject selected, BaseEventData pointer)
    Parameters
    Type Name Description
    GameObject selected

    GameObject to select.

    BaseEventData pointer

    Associated EventData.

    SetUITookitEventSystemOverride(EventSystem, bool, bool)

    Sets how UI Toolkit runtime panels receive events and handle selection when interacting with other objects that use the EventSystem, such as components from the Unity UI package.

    Declaration
    public static void SetUITookitEventSystemOverride(EventSystem activeEventSystem, bool sendEvents = true, bool createPanelGameObjectsOnStart = true)
    Parameters
    Type Name Description
    EventSystem activeEventSystem

    The EventSystem used to override UI Toolkit panel events and selection. If activeEventSystem is null, UI Toolkit panels will use current enabled EventSystem or, if there is none, the default InputManager-based event system will be used.

    bool sendEvents

    If true, UI Toolkit events will come from this EventSystem instead of the default InputManager-based event system.

    bool createPanelGameObjectsOnStart

    If true, UI Toolkit panels' unassigned selectableGameObject will be automatically initialized with children GameObjects of this EventSystem on Start.

    Start()

    Declaration
    protected override void Start()
    Overrides
    UIBehaviour.Start()

    ToString()

    Declaration
    public override string ToString()
    Returns
    Type Description
    string
    Overrides
    Object.ToString()

    Update()

    Declaration
    protected virtual void Update()

    UpdateModules()

    Recalculate the internal list of BaseInputModules.

    Declaration
    public void UpdateModules()

    Did you find this page useful? Please give it a rating:

    Thanks for rating this page!

    Report a problem on this page

    What kind of problem would you like to report?

    • This page needs code samples
    • Code samples do not work
    • Information is missing
    • Information is incorrect
    • Information is unclear or confusing
    • There is a spelling/grammar error on this page
    • Something else

    Thanks for letting us know! This page has been marked for review based on your feedback.

    If you have time, you can provide more information to help us fix the problem faster.

    Provide more information

    You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:

    You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:

    You've told us there is information missing from this page. Please tell us more about what's missing:

    You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:

    You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:

    You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:

    You've told us this page has a problem. Please tell us more about what's wrong:

    Thank you for helping to make the Unity documentation better!

    Your feedback has been submitted as a ticket for our documentation team to review.

    We are not able to reply to every ticket submitted.

    In This Article
    • Constructors
      • EventSystem()
    • Properties
      • alreadySelecting
      • current
      • currentInputModule
      • currentSelectedGameObject
      • firstSelectedGameObject
      • isFocused
      • lastSelectedGameObject
      • pixelDragThreshold
      • sendNavigationEvents
    • Methods
      • IsPointerOverGameObject()
      • IsPointerOverGameObject(int)
      • OnApplicationFocus(bool)
      • OnDisable()
      • OnEnable()
      • RaycastAll(PointerEventData, List<RaycastResult>)
      • SetSelectedGameObject(GameObject)
      • SetSelectedGameObject(GameObject, BaseEventData)
      • SetUITookitEventSystemOverride(EventSystem, bool, bool)
      • Start()
      • ToString()
      • Update()
      • UpdateModules()
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)