private void Exit(XRPhysicsInteractor interactor, XRInteractionEventReceiver receiver)
 {
     if (interactor.ButtonHeldCount == 0 || !_interactionEventReceiver.enabled)
     {
         _states[InteractorToChiralityIndex(interactor)] = HoverState.Empty;
     }
 }
 private void Enter(XRPhysicsInteractor interactor, XRInteractionEventReceiver receiver)
 {
     if (interactor.ButtonHeldCount > 0)
     {
         _states[InteractorToChiralityIndex(interactor)] = HoverState.Press;
     }
     else
     {
         _states[InteractorToChiralityIndex(interactor)] = HoverState.Hover;
     }
 }
 private void ButtonUp(XRButtonDatum datum, XRInteractionEventReceiver receiver)
 {
     if (_states[ButtonToChiralityIndex(datum)] == HoverState.Press &&
         _interactionEventReceiver.enabled &&
         _interactionEventReceiver.HoveringInteractors.Contains(datum.ParentInteractor))
     {
         _states[ButtonToChiralityIndex(datum)] = HoverState.Hover;
     }
     else
     {
         _states[ButtonToChiralityIndex(datum)] = HoverState.Empty;
     }
 }
        private void Awake()
        {
            _interactionEventReceiver = GetComponent <XRInteractionEventReceiver>();
            _interactionEventReceiver.Events.Enter.AddListener(Enter);
            _interactionEventReceiver.Events.Exit.AddListener(Exit);
            _interactionEventReceiver.Events.ButtonDown.AddListener(ButtonDown);
            _interactionEventReceiver.Events.ButtonUp.AddListener(ButtonUp);

            _highlightMaterial = new Material(_highlightMaterial)
            {
                color = _hoverColor.Color
            };
            _highlightMaterial.color = _hoverColor.Color;
            _highlightMaterial.SetFloat(SpreadPropertyNames[0], MaxSpread);
            _highlightMaterial.SetFloat(SpreadPropertyNames[1], MaxSpread);
            _meshFilters = GetComponentsInChildren <MeshFilter>();
        }
 private void ButtonDown(XRButtonDatum datum, XRInteractionEventReceiver receiver)
 {
     _states[ButtonToChiralityIndex(datum)] = HoverState.Press;
 }