OpenXRIPBinding
One link from an action resource to a complete OpenXR component path.
OpenXRIPBinding links Action to one BindingPath. For example, select binds to /user/hand/right/input/select/click. Create a second record for the left hand. A new resource is empty: Action=null, empty path and no modifiers. Creating it alone adds it to neither a profile nor a session.
Action returns the same action resource. BindingPath is one path, not a list or InteractionProfilePath. Their setters emit Changed even for repeated values. This reports resource edits, not button presses.
BindingModifiers applies to this record, for example an analog threshold. The getter copies the container, not resources. Editing a list copy does not change the binding until assigned back. A modifier transfers when assigned to another binding. An empty Array removes modifiers while maintaining ownership links.
Paths, AddPath, RemovePath, HasPath and GetPathCount belong to the obsolete approach. SetPaths emits no Changed and can store a comma-separated string. GetPathCount returns 1 for that nonempty string even when GetPaths returns two elements. HasPath compares the entire string. Do not build new code around these methods, even where SetPaths/GetPaths lack SDK Obsolete metadata.
Confirmed defect: RemovePath with a matching argument leaves the path unchanged and emits Changed. Actual clearing acceptance failed; the engine was not fixed. To remove a record from a profile, use a separate list without it; see the executed helper in OpenXRInteractionProfile.
Current setters/getters, modifier arrays, ownership and observed obsolete-method behavior were checked without a headset. Physical input, runtime type/path validation, haptics and XR sessions were not tested.
Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.
Constructors1
OpenXRIPBindingConstructor
public OpenXRIPBinding();Creates an empty record: Action=null, empty BindingPath and no modifiers. Configure it and include it in the intended profile’s Bindings; a resource does not attach itself to an XR session.
Properties4
ActionProperty
public OpenXRAction Action { get; set; }OpenXRAction resource reference, initially null. Assign an action already included in a map’s set. The getter returns the same resource, not a copy. The setter emits Changed even on repetition. Neither adds the action to a set nor automatically creates a runtime action; editing a shared resource affects all its users.
BindingModifiersProperty
public Reckfell.Collections.Array BindingModifiers { get; set; }Per-binding modifiers, such as OpenXRAnalogThresholdModifier, derived from OpenXRActionBindingModifier. The getter returns a container copy with shared resources. The setter removes previous ownership and re-adds resources; one modifier transfers between bindings rather than belonging to two at once. Multiple Changed notifications are possible. An empty Array removes modifiers. Application depends on extensions and a valid target-runtime path.
BindingPathProperty
public string BindingPath { get; set; }One full input or output path, initially empty; for example /user/hand/right/input/select/click. Neither a profile path nor an action name. The setter uses available engine metadata and emits Changed even on repetition. Create two OpenXRIPBinding records for two hands. Validate profile/path/action-type combinations before startup and on the target runtime.
PathsProperty · Deprecated
public string[] Paths { get; set; }Obsolete approach. The setter joins strings with commas into BindingPath without Changed; the getter splits the string into an independent string[]. Array and ReadOnlySpan overloads copy data but do not create multiple complete profile records. New code should use a separate OpenXRIPBinding and BindingPath per path, even where a particular SDK overload lacks Obsolete metadata.
Methods15
AddPathvoid · Deprecated
public void AddPath(string path);Obsolete method, not list append: fills an empty BindingPath and emits Changed. Repeating the same string is ignored; a different path on a nonempty record is rejected. Create a separate record for a second path.
| Name | Type | Default |
|---|---|---|
path | string | — |
pathString for an obsolete comparison/operation, not a list. RemovePath currently does not actually clear a matching path.
GetActionOpenXRAction
public OpenXRAction GetAction();The same stored OpenXRAction, or null for an unconfigured record. Neither creates an action nor returns button state.
OpenXRActionStored action resource, or null.
GetBindingModifierOpenXRActionBindingModifier
public OpenXRActionBindingModifier GetBindingModifier(int index);Existing OpenXRActionBindingModifier at index 0…GetBindingModifierCount()-1, not a copy. Check bounds; profile-level modifiers belong to a different resource.
| Name | Type | Default |
|---|---|---|
index | int | — |
indexIndex from 0 inclusive to the corresponding Get…Count() exclusive. Check the count before calling.
OpenXRActionBindingModifierThe same modifier resource for the corresponding level at a valid index.
GetBindingModifierCountint
public int GetBindingModifierCount();Modifier count on this record, initially 0. Does not report device availability.
intStored modifier count for the corresponding resource.
GetBindingModifiersReckfell.Collections.Array
public Reckfell.Collections.Array GetBindingModifiers();Per-binding modifiers, such as OpenXRAnalogThresholdModifier, derived from OpenXRActionBindingModifier. The getter returns a container copy with shared resources. The setter removes previous ownership and re-adds resources; one modifier transfers between bindings rather than belonging to two at once. Multiple Changed notifications are possible. An empty Array removes modifiers. Application depends on extensions and a valid target-runtime path.
Reckfell.Collections.ArrayNew Array referencing the same modifier resources; not a deep copy.
GetBindingPathstring
public string GetBindingPath();Stored single-path string. A normal configured record holds one complete input/output path; obsolete SetPaths can place a comma-separated string here.
stringStored BindingPath string, initially empty.
GetPathCountint · Deprecated
public int GetPathCount();Obsolete method: returns 0 for an empty BindingPath and 1 for a nonempty string, even when GetPaths() splits it into several elements. Not a path-collection size; a new record should contain one BindingPath.
int0 for an empty string or 1 for a nonempty string; not GetPaths().Length.
GetPathsstring[]
public string[] GetPaths();Obsolete approach. The setter joins strings with commas into BindingPath without Changed; the getter splits the string into an independent string[]. Array and ReadOnlySpan overloads copy data but do not create multiple complete profile records. New code should use a separate OpenXRIPBinding and BindingPath per path, even where a particular SDK overload lacks Obsolete metadata.
string[]Independent string[] of nonempty comma-separated string parts. An obsolete representation.
HasPathbool · Deprecated
public bool HasPath(string path);Obsolete method. Compares the argument against the entire BindingPath string rather than searching GetPaths() elements. Two empty strings also compare true. New code should compare a configured record’s BindingPath.
| Name | Type | Default |
|---|---|---|
path | string | — |
pathString for an obsolete comparison/operation, not a list. RemovePath currently does not actually clear a matching path.
boolExact equality between the argument and the complete BindingPath string.
RemovePathvoid · Deprecated
public void RemovePath(string path);Obsolete method with a confirmed current defect: a matching path remains in BindingPath and Changed is emitted. A different argument is rejected. Actual clearing acceptance failed; the engine was not fixed. Remove a profile record by building a separate list without it and assigning Bindings; see the OpenXRInteractionProfile introduction.
| Name | Type | Default |
|---|---|---|
path | string | — |
pathString for an obsolete comparison/operation, not a list. RemovePath currently does not actually clear a matching path.
SetActionvoid
public void SetAction(OpenXRAction action);OpenXRAction resource reference, initially null. Assign an action already included in a map’s set. The getter returns the same resource, not a copy. The setter emits Changed even on repetition. Neither adds the action to a set nor automatically creates a runtime action; editing a shared resource affects all its users.
| Name | Type | Default |
|---|---|---|
action | OpenXRAction | — |
actionAction resource from a map’s set; the setter neither adds it to a set nor validates the entire map.
SetBindingModifiersvoid
public void SetBindingModifiers(Reckfell.Collections.Array bindingModifiers);Per-binding modifiers, such as OpenXRAnalogThresholdModifier, derived from OpenXRActionBindingModifier. The getter returns a container copy with shared resources. The setter removes previous ownership and re-adds resources; one modifier transfers between bindings rather than belonging to two at once. Multiple Changed notifications are possible. An empty Array removes modifiers. Application depends on extensions and a valid target-runtime path.
| Name | Type | Default |
|---|---|---|
bindingModifiers | Reckfell.Collections.Array | — |
bindingModifiersArray of non-null OpenXRActionBindingModifier resources. Adding transfers a resource from its previous binding.
SetBindingPathvoid
public void SetBindingPath(string bindingPath);One full input or output path, initially empty; for example /user/hand/right/input/select/click. Neither a profile path nor an action name. The setter uses available engine metadata and emits Changed even on repetition. Create two OpenXRIPBinding records for two hands. Validate profile/path/action-type combinations before startup and on the target runtime.
| Name | Type | Default |
|---|---|---|
bindingPath | string | — |
bindingPathOne full component path, for example /user/hand/right/input/select/click; not a comma-separated list.
SetPaths2 overloads
public void SetPaths(ReadOnlySpan<string> paths);Obsolete approach. The setter joins strings with commas into BindingPath without Changed; the getter splits the string into an independent string[]. Array and ReadOnlySpan overloads copy data but do not create multiple complete profile records. New code should use a separate OpenXRIPBinding and BindingPath per path, even where a particular SDK overload lacks Obsolete metadata.
| Name | Type | Default |
|---|---|---|
paths | ReadOnlySpan<string> | — |
pathsObsolete string list for internal serialization; new code should set one BindingPath on each separate record.
public void SetPaths(string[] paths);Obsolete approach. The setter joins strings with commas into BindingPath without Changed; the getter splits the string into an independent string[]. Array and ReadOnlySpan overloads copy data but do not create multiple complete profile records. New code should use a separate OpenXRIPBinding and BindingPath per path, even where a particular SDK overload lacks Obsolete metadata.
| Name | Type | Default |
|---|---|---|
paths | string[] | — |
pathsObsolete string list for internal serialization; new code should set one BindingPath on each separate record.