// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using UnityEngine.EventSystems; namespace Microsoft.MixedReality.Toolkit.Input { /// /// Interface to implement to react to focus enter/exit. /// /// /// The events on this interface are related to those of , whose event have /// a known ordering with this interface: /// IMixedRealityFocusChangedHandler::OnBeforeFocusChange /// IMixedRealityFocusHandler::OnFocusEnter /// IMixedRealityFocusHandler::OnFocusExit /// IMixedRealityFocusChangedHandler::OnFocusChanged /// Because these two interfaces are different, consumers must be wary about having nested /// hierarchies where some game objects will implement both interfaces, and more deeply nested /// object within the same parent-child chain that implement a single one of these - such /// a presence can lead to scenarios where one interface is invoked on the child object, and then /// the other interface is invoked on the parent object (thus, the parent would "miss" getting /// the event that the child had already processed). /// public interface IMixedRealityFocusHandler : IEventSystemHandler { /// /// The Focus Enter event is raised on this GameObject whenever a 's focus enters this GameObject's Collider. /// void OnFocusEnter(FocusEventData eventData); /// /// The Focus Exit event is raised on this GameObject whenever a 's focus leaves this GameObject's Collider. /// void OnFocusExit(FocusEventData eventData); } }