public void Add(XRInputName inputName) { if (!_inputNames.Contains(inputName)) { _inputNames.Add(inputName); } }
private void OnButtonUp(XRInputName inputName) { //button up may get fired when this interactor is disabled //so which buttons are held, and have been released //must be checked so UnButtonUp does not get called twice XRButtonDatum datum = GetButtonDatum(inputName); if (_heldButtons.Contains(datum)) { _heldButtons.Remove(datum); ButtonHeldCount--; if (null != datum.PressCollider) { SendButtonUpEvents(datum.PressCollider, datum); datum.ButtonUp(); } if (ButtonHeldCount == 0) { _events.LastButtonUp.Invoke(datum); } _events.ButtonUp.Invoke(datum); } }
private bool ContainsEnum(XRInputName inputName) { for (int i = 0; i < _list.serializedProperty.arraySize; ++i) { if (_list.serializedProperty.GetArrayElementAtIndex(i).enumValue <XRInputName>() == inputName) { return(true); } } return(false); }
private void OnButtonHold(XRInputName inputName) { XRButtonDatum datum = GetButtonDatum(inputName); if (null != datum.PressCollider) { datum.ButtonHold(); SendButtonHoldEvents(datum.PressCollider, datum); } _events.ButtonHold.Invoke(datum); }
private void EnableButtonUp(XRInputName inputName) { _enableButtonCount--; if (_enableButtonCount == 0) { enabled = false; if (_soloCondition == SoloCondition.InteractorEnabled) { _parentUserController.SetSoloState(true, this); } } }
private void EnableButtonDown(XRInputName inputName) { _enableButtonCount++; if (_enableButtonCount == 1) { enabled = true; // Process(); //should a buttonDown event also be sent on same frame that interactor is enabled? if (_soloCondition == SoloCondition.InteractorEnabled) { _parentUserController.SetSoloState(false, this); } } }
public XRButtonDatum(XRUserController parentUserController, XRPhysicsInteractor parentInteractor, XRInputName inputName) { ParentUserController = parentUserController; ParentInteractor = parentInteractor; InputName = inputName; _pressLocalTransform = new GameObject("PressLocalTransform").transform; _pressLocalTransform.gameObject.hideFlags = HideFlags.HideAndDontSave; _pressLocalTransform.SetParent(parentInteractor.transform); _pressLocalHitTransform = new GameObject("PressLocalHitTransform").transform; _pressLocalHitTransform.gameObject.hideFlags = HideFlags.HideAndDontSave; _pressLocalHitTransform.SetParent(parentInteractor.transform); }
public IXRInputProcessor GetInput(XRInputName inputName) { IXRInputProcessor inputProcessor; _inputProcessors.TryGetValue(inputName, out inputProcessor); if (null != inputProcessor) { return(inputProcessor); } else { Debug.LogWarning(inputName + " not found on " + name); return(null); } }
private void OnButtonDown(XRInputName inputName) { ButtonHeldCount++; XRButtonDatum datum = GetButtonDatum(inputName); _heldButtons.Add(datum); if (CanInteractWithCurrentGameObject()) { datum.ButtonDown(CurrentCollider, CurrentHitRay); SendButtonDownEvents(CurrentCollider, datum); } if (ButtonHeldCount == 1) { _events.FirstButtonDown.Invoke(datum); } _events.ButtonDown.Invoke(datum); }
public XRButtonDatum GetButtonDatum(XRInputName inputName) { return(ButtonDatums.GetValue((int)inputName)); }
protected void Reset() { _forwardButtonEvents = 0 << -1; _interactionLayerMask = LayerMask.GetMask("Default"); }
public bool Contains(XRInputName inputName) { return(_inputNames.Contains(inputName)); }
public bool RecievesInput(XRInputName inputName) { return((_recieverConfiguration.InputNames & inputName) == inputName); }