public bool GetReleasedThisFrame(MRWSAInput.InteractionSourceHandedness handedness, Button btn) { var state = GetState(handedness, false); var lastState = GetState(handedness, true); return(!IsPressed(state, btn) && IsPressed(lastState, btn)); }
private void SetPressedPointerState(MRWSAInput.InteractionSourceHandedness handedness) { var state = GetState(handedness, false); var lastState = GetState(handedness, true); var hand = (SourceHandedness)Enum.ToObject(typeof(SourceHandedness), state.Value.source.handedness); var isPressedThisFrame = IsPressed(state, selectionButton); var isPressedLastFrame = IsPressed(lastState, selectionButton); if (isPressedThisFrame && !isPressedLastFrame) { if (activeSelectionHand != hand) { activeSelectionHand = hand; } } if (state.HasValue && activeSelectionHand == hand) { PressedThisFrame = (isPressedThisFrame && !isPressedLastFrame); ReleasedThisFrame = (!isPressedThisFrame && isPressedLastFrame); } }
public Quaternion GetRotationDelta(MRWSAInput.InteractionSourceHandedness handedness, MRWSAInput.InteractionSourceNode node) { var state = GetState(handedness, false); var lastState = GetState(handedness, true); var rotation = GetRotation(state, node); var lastRotation = GetRotation(lastState, node); Quaternion delta = Quaternion.identity; if (rotation.HasValue && lastRotation.HasValue) { delta = rotation.Value * Quaternion.Inverse(lastRotation.Value); } return(delta); }
public Vector3 GetPositionDelta(MRWSAInput.InteractionSourceHandedness handedness, MRWSAInput.InteractionSourceNode node) { var state = GetState(handedness, false); var lastState = GetState(handedness, true); var position = GetPosition(state, node); var lastPosition = GetPosition(lastState, node); Vector3 delta = Vector3.zero; if (position.HasValue && lastPosition.HasValue) { delta = position.Value - lastPosition.Value; } return(delta); }
public Vector2 ThumbStickPosition(MRWSAInput.InteractionSourceHandedness handedness, bool getPreviousValue = false) { var state = GetState(handedness, getPreviousValue); var position = Vector2.zero; if (state.HasValue) { #if UNITY_5 position = new Vector2((float)state.Value.controllerProperties.thumbstickX, (float)state.Value.controllerProperties.thumbstickY); #else position = state.Value.thumbstickPosition; #endif } return(position); }
// special states public double SelectAmount(MRWSAInput.InteractionSourceHandedness handedness, bool getPreviousValue = false) { var state = GetState(handedness, getPreviousValue); double amount = 0.0; if (state.HasValue) { #if UNITY_5 amount = state.Value.selectPressedValue; #else amount = state.Value.selectPressedAmount; #endif } return(amount); }
public Vector2 ThumbStickDelta(MRWSAInput.InteractionSourceHandedness handedness) { var state = GetState(handedness, false); var lastState = GetState(handedness, true); var delta = Vector2.zero; if (state.HasValue && lastState.HasValue) { #if UNITY_5 var pos = new Vector2((float)state.Value.controllerProperties.thumbstickX, (float)state.Value.controllerProperties.thumbstickY); var lastPos = new Vector2((float)lastState.Value.controllerProperties.thumbstickX, (float)lastState.Value.controllerProperties.thumbstickY); #else var pos = state.Value.thumbstickPosition; var lastPos = lastState.Value.thumbstickPosition; #endif delta = pos - lastPos; } return(delta); }
public MRWSAInput.InteractionSourceState?GetState(MRWSAInput.InteractionSourceHandedness handedness, bool getPreviousState) { MRWSAInput.InteractionSourceState?state = null; if (handedness == MRWSAInput.InteractionSourceHandedness.Left) { state = getPreviousState ? this.prevLeftHandState : this.leftHandState; } else if (handedness == MRWSAInput.InteractionSourceHandedness.Right) { state = getPreviousState ? this.prevRightHandState : this.rightHandState; } #if UNITY_5 else if (handedness == MRWSAInput.InteractionSourceHandedness.Unspecified) #else else if (handedness == MRWSAInput.InteractionSourceHandedness.Unknown) #endif { state = getPreviousState ? this.prevUnspecifiedHandState : this.unspecifiedHandState; } return(state); }
// rotation public Quaternion?GetRotation(MRWSAInput.InteractionSourceHandedness handedness, MRWSAInput.InteractionSourceNode node, bool getPreviousValue = false) { var state = GetState(handedness, getPreviousValue); return(GetRotation(state, node)); }
public bool GetPressedOrReleased(MRWSAInput.InteractionSourceHandedness handedness, Button btn) { return(GetPressedThisFrame(handedness, btn) || GetReleasedThisFrame(handedness, btn)); }
// button states public bool IsPressed(MRWSAInput.InteractionSourceHandedness handedness, Button btn, bool getPreviousValue = false) { var state = GetState(handedness, getPreviousValue); return(IsPressed(state, btn)); }