OpenXRDpadBindingModifier (original) (raw)

Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Checking the stable version of the documentation...

Inherits: OpenXRIPBindingModifier < OpenXRBindingModifier < Resource < RefCounted < Object

The DPad binding modifier converts an axis input to a dpad output.

Description

The DPad binding modifier converts an axis input to a dpad output, emulating a DPad. New input paths for each dpad direction will be added to the interaction profile. When bound to actions the DPad emulation will be activated. You should not combine dpad inputs with normal inputs in the same action set for the same control, this will result in an error being returned when suggested bindings are submitted to OpenXR.

See XR_EXT_dpad_binding for in-depth details.

Note: If the DPad binding modifier extension is enabled, all dpad binding paths will be available in the action map. Adding the modifier to an interaction profile allows you to further customize the behavior.

Properties

OpenXRActionSet action_set
float center_region 0.1
String input_path ""
bool is_sticky false
OpenXRHapticBase off_haptic
OpenXRHapticBase on_haptic
float threshold 0.6
float threshold_released 0.4
float wedge_angle 1.5708

Property Descriptions

OpenXRActionSet action_set 🔗

Action set for which this dpad binding modifier is active.


float center_region = 0.1 🔗

Center region in which our center position of our dpad return true.


String input_path = "" 🔗

Input path for this dpad binding modifier.


bool is_sticky = false 🔗

If false, when the joystick enters a new dpad zone this becomes true.

If true, when the joystick remains in active dpad zone, this remains true even if we overlap with another zone.


OpenXRHapticBase off_haptic 🔗

Haptic pulse to emit when the user releases the input.


OpenXRHapticBase on_haptic 🔗

Haptic pulse to emit when the user presses the input.


float threshold = 0.6 🔗

When our input value is equal or larger than this value, our dpad in that direction becomes true. It stays true until it falls under the threshold_released value.


float threshold_released = 0.4 🔗

When our input value falls below this, our output becomes false.


float wedge_angle = 1.5708 🔗

The angle of each wedge that identifies the 4 directions of the emulated dpad.