reckfellENGINE

OpenXRIPBinding

One link from an action resource to a complete OpenXR component path.

On this page
class OpenXRIPBindingReckfellSharpInherits Resource

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
# OpenXRIPBinding
C#
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
# Action
C#
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
# BindingModifiers
C#
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
# BindingPath
C#
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
# Paths
C#
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
# AddPath
C#
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.

Parameters
NameTypeDefault
pathstring—
path

String for an obsolete comparison/operation, not a list. RemovePath currently does not actually clear a matching path.

GetActionOpenXRAction
# GetAction
C#
public OpenXRAction GetAction();

The same stored OpenXRAction, or null for an unconfigured record. Neither creates an action nor returns button state.

Returns OpenXRAction

Stored action resource, or null.

GetBindingModifierOpenXRActionBindingModifier
# GetBindingModifier
C#
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.

Parameters
NameTypeDefault
indexint—
index

Index from 0 inclusive to the corresponding Get…Count() exclusive. Check the count before calling.

Returns OpenXRActionBindingModifier

The same modifier resource for the corresponding level at a valid index.

GetBindingModifierCountint
# GetBindingModifierCount
C#
public int GetBindingModifierCount();

Modifier count on this record, initially 0. Does not report device availability.

Returns int

Stored modifier count for the corresponding resource.

GetBindingModifiersReckfell.Collections.Array
# GetBindingModifiers
C#
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.

Returns Reckfell.Collections.Array

New Array referencing the same modifier resources; not a deep copy.

GetBindingPathstring
# GetBindingPath
C#
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.

Returns string

Stored BindingPath string, initially empty.

GetPathCountint · Deprecated
# GetPathCount
C#
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.

Returns int

0 for an empty string or 1 for a nonempty string; not GetPaths().Length.

GetPathsstring[]
# GetPaths
C#
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.

Returns string[]

Independent string[] of nonempty comma-separated string parts. An obsolete representation.

HasPathbool · Deprecated
# HasPath
C#
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.

Parameters
NameTypeDefault
pathstring—
path

String for an obsolete comparison/operation, not a list. RemovePath currently does not actually clear a matching path.

Returns bool

Exact equality between the argument and the complete BindingPath string.

RemovePathvoid · Deprecated
# RemovePath
C#
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.

Parameters
NameTypeDefault
pathstring—
path

String for an obsolete comparison/operation, not a list. RemovePath currently does not actually clear a matching path.

SetActionvoid
# SetAction
C#
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.

Parameters
NameTypeDefault
actionOpenXRAction—
action

Action resource from a map’s set; the setter neither adds it to a set nor validates the entire map.

SetBindingModifiersvoid
# SetBindingModifiers
C#
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.

Parameters
NameTypeDefault
bindingModifiersReckfell.Collections.Array—
bindingModifiers

Array of non-null OpenXRActionBindingModifier resources. Adding transfers a resource from its previous binding.

SetBindingPathvoid
# SetBindingPath
C#
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.

Parameters
NameTypeDefault
bindingPathstring—
bindingPath

One full component path, for example /user/hand/right/input/select/click; not a comma-separated list.

SetPaths2 overloads
# SetPaths · 1/2
C#
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.

Parameters
NameTypeDefault
pathsReadOnlySpan<string>—
paths

Obsolete string list for internal serialization; new code should set one BindingPath on each separate record.

# SetPaths · 2/2
C#
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.

Parameters
NameTypeDefault
pathsstring[]—
paths

Obsolete string list for internal serialization; new code should set one BindingPath on each separate record.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.