/// <summary>Play a haptic impulse on the controller if one is available</summary> /// <param name="amplitude">Amplitude (from 0.0 to 1.0) to play impulse at.</param> /// <param name="duration">Duration (in seconds) to play haptic impulse.</param> public bool SendHapticImpulse(float amplitude, float duration) { HapticCapabilities capabilities; if (InputDevices.GetDeviceAtXRNode(controllerNode).TryGetHapticCapabilities(out capabilities) && capabilities.supportsImpulse) { return(InputDevices.GetDeviceAtXRNode(controllerNode).SendHapticImpulse(0, amplitude, duration)); } return(false); }
private bool TryResolveDevice(XRNode role, out InputDevice device) { var inputDevice = InputDevices.GetDeviceAtXRNode(role); if (inputDevice.isValid) { device = inputDevice; return(true); } device = new InputDevice(); return(false); }
void UpdateTrackingInput() { Vector3 devicePosition = new Vector3(); if (InputDevices.GetDeviceAtXRNode(controllerNode).TryGetFeatureValue(CommonUsages.devicePosition, out devicePosition)) { transform.localPosition = devicePosition; } Quaternion deviceRotation = new Quaternion(); if (InputDevices.GetDeviceAtXRNode(controllerNode).TryGetFeatureValue(CommonUsages.deviceRotation, out deviceRotation)) { transform.localRotation = deviceRotation; } }
void HandleInteractionAction(XRNode node, string usage, ref InteractionState interactionState) { float value = 0.0f; var inputDevice = InputDevices.GetDeviceAtXRNode(node); if (inputDevice.isValid && inputDevice.TryGetFeatureValue(new InputFeatureUsage <float>(usage), out value) && value >= m_AxisToPressThreshold) { if (!interactionState.active) { interactionState.activatedThisFrame = true; interactionState.active = true; } } else { if (interactionState.active) { interactionState.deActivatedThisFrame = true; interactionState.active = false; } } }
/// <summary> /// Constructor /// </summary> /// <param name="deviceNode">Device from which take the input</param> internal InputDeviceWrapper(XRNode deviceNode) { m_inputDevice = InputDevices.GetDeviceAtXRNode(deviceNode); this.m_deviceNode = deviceNode; this.m_isSteamVR = m_inputDevice.subsystem != null && m_inputDevice.subsystem.SubsystemDescriptor.id == "OpenVR Input"; }