public virtual void HoverExit(XRBaseInteractor interactor, XRBaseInteractable interactable)
 {
     interactor.OnHoverExiting(interactable);
     interactable.OnHoverExiting(interactor);
     interactor.OnHoverExited(interactable);
     interactable.OnHoverExited(interactor);
 }
        /// <summary>
        /// Initiates ending hovering of an Interactable by an Interactor, passing the given <paramref name="args"/>.
        /// </summary>
        /// <param name="interactor">The Interactor that is no longer hovering.</param>
        /// <param name="interactable">The Interactable that is no longer being hovered over.</param>
        /// <param name="args">Event data containing the Interactor and Interactable involved in the event.</param>
        protected virtual void HoverExit(XRBaseInteractor interactor, XRBaseInteractable interactable, HoverExitEventArgs args)
        {
            Debug.Assert(args.interactor == interactor, this);
            Debug.Assert(args.interactable == interactable, this);

            interactor.OnHoverExiting(args);
            interactable.OnHoverExiting(args);
            interactor.OnHoverExited(args);
            interactable.OnHoverExited(args);
        }