// Copyright HTC Corporation All Rights Reserved. using UnityEngine; using UnityEngine.EventSystems; namespace VIVE.OpenXR.Raycast { public class RaycastEventData : PointerEventData { /// The actor sends an event. public GameObject Actor { get { return m_Actor; } } private GameObject m_Actor = null; public RaycastEventData(EventSystem eventSystem, GameObject actor) : base(eventSystem) { m_Actor = actor; } } /// /// The object which receives events should implement this interface. /// public interface IHoverHandler : IEventSystemHandler { void OnHover(RaycastEventData eventData); } /// /// Objects will use /// ExecuteEvents.Execute (GameObject, BaseEventData, RayastEvents.pointerXXXXHandler) /// to send XXXX events. /// public static class RaycastEvents { #region Event Executor of Hover /// Use ExecuteEvents.Execute (GameObject, BaseEventData, RaycastEvents.pointerHoverHandler) private static void HoverExecutor(IHoverHandler handler, BaseEventData eventData) { handler.OnHover(ExecuteEvents.ValidateEventData(eventData)); } public static ExecuteEvents.EventFunction pointerHoverHandler { get { return HoverExecutor; } } #endregion } }