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; }