reckfellENGINE

OpenXRInteractionProfile

Пути привязок действий для одного профиля XR-контроллера.

На этой странице
class OpenXRInteractionProfileReckfellSharpНаследует Resource

OpenXRInteractionProfile описывает предложенные привязки для профиля, например /interaction_profiles/khr/simple_controller. Это ресурс конфигурации, не подключённый контроллер и не отчёт о выбранном runtime-профиле. Новый ресурс имеет пустой путь, без привязок и модификаторов. Добавьте его в OpenXRActionMap до создания XR-сеанса.

В Bindings хранятся OpenXRIPBinding: одно действие и один полный путь на запись. Для двух рук нужны две записи, ссылающиеся на одно действие. Ресурс действия должен присутствовать в наборе карты. Разные записи с одной парой Action/BindingPath не допускаются.

GetBindings возвращает общий Array. Для замены сначала Duplicate() контейнера: самоприсваивание очищает список. Полный проверенный помощник удаляет запись по индексу, не меняя её BindingPath и не затрагивая другие профили, использующие тот же ресурс:

C#
using System;
using Reckfell;

public static class ProfileBindingTools
{
    // Removes a binding record from this profile, without changing the resource's path.
    public static void RemoveAt(OpenXRInteractionProfile profile, int index)
    {
        ArgumentNullException.ThrowIfNull(profile);
        using var shared = profile.GetBindings();
        if (index < 0 || index >= shared.Count)
            throw new ArgumentOutOfRangeException(nameof(index));
        using var replacement = shared.Duplicate();
        replacement.RemoveAt(index);
        profile.SetBindings(replacement);
    }
}

Этот способ также обходится без устаревшего RemovePath: в текущем движке тот оставляет совпадающий путь на месте. Проверка удаления провалилась; исходники движка не менялись.

BindingModifiers работает иначе: getter создаёт независимый контейнер с общими ресурсами. Модификаторы уровня профиля, например D-pad, отличаются от модификаторов отдельной привязки. Один модификатор принадлежит одному профилю и переносится при назначении другому. Поддержка расширения runtime проверяется отдельно.

Проверены значения, события, массивы, перенос модификаторов, пример удаления и прежний пример сохранения карты. OpenXR оставался выключенным; принятие профиля устройством, ввод, haptics, модификаторы на устройстве и XR-сеанс не проверялись. Полная настройка: карта действий.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

OpenXRInteractionProfileКонструктор
# OpenXRInteractionProfile
C#
public OpenXRInteractionProfile();

Создаёт профиль с пустым InteractionProfilePath, без привязок и модификаторов. Не обнаруживает подключённый контроллер и не выбирает его runtime-профиль.

Свойства3

BindingModifiersСвойство
# BindingModifiers
C#
public Reckfell.Collections.Array BindingModifiers { get; set; }

Модификаторы уровня профиля, например OpenXRDpadBindingModifier. Getter создаёт новый Array, но ресурсы внутри общие: Clear() результата не удаляет модификаторы профиля. Setter снимает старые связи и добавляет ресурсы заново; возможны несколько Changed. Один модификатор принадлежит одному профилю и при переносе удаляется из прежнего. Не путайте с модификаторами отдельного OpenXRIPBinding; сохранение не гарантирует поддержку расширения runtime.

BindingsСвойство
# Bindings
C#
public Reckfell.Collections.Array Bindings { get; set; }

Список OpenXRIPBinding. Getter возвращает общий Array; прямое редактирование меняет ресурс и обходит Changed/проверки. Setter очищает список и добавляет привязки; повтор одного экземпляра игнорируется, разные экземпляры с одинаковыми Action и BindingPath отклоняются. Самоприсваивание общего getter-массива очищает список. Для замены сначала Duplicate() контейнера; проверьте ненулевые элементы и дубли до вызова. Ресурсы внутри копии остаются общими.

InteractionProfilePathСвойство
# InteractionProfilePath
C#
public string InteractionProfilePath { get; set; }

Полный путь interaction profile, изначально пустой; например /interaction_profiles/khr/simple_controller. Не имя действия и не путь конкретной кнопки. Setter использует метаданные движка, если они доступны, сохраняет путь и испускает Changed даже при повторе. Это не подтверждение поддержки профиля подключённым runtime.

Методы10

GetBindingOpenXRIPBinding
# GetBinding
C#
public OpenXRIPBinding GetBinding(int index);

Возвращает существующий ресурс привязки по индексу 0…GetBindingCount()-1. Это тот же ресурс, не копия. Проверьте диапазон до вызова.

Параметры
ИмяТипПо умолчанию
indexint—
index

Индекс от 0 включительно до соответствующего Get…Count() исключительно. Проверьте количество перед вызовом.

Возвращает OpenXRIPBinding

Тот же ресурс привязки по допустимому индексу.

GetBindingCountint
# GetBindingCount
C#
public int GetBindingCount();

Число записей привязок ресурса профиля, изначально 0. Не число подключённых устройств или работающих на них входов.

Возвращает int

Количество записей привязок профиля.

GetBindingModifierOpenXripBindingModifier
# GetBindingModifier
C#
public OpenXripBindingModifier GetBindingModifier(int index);

Читает существующий модификатор уровня профиля по индексу 0…GetBindingModifierCount()-1. Тип отличается от модификатора отдельной привязки. Ресурс общий; сначала проверьте индекс.

Параметры
ИмяТипПо умолчанию
indexint—
index

Индекс от 0 включительно до соответствующего Get…Count() исключительно. Проверьте количество перед вызовом.

Возвращает OpenXripBindingModifier

Тот же ресурс модификатора соответствующего уровня по допустимому индексу.

GetBindingModifierCountint
# GetBindingModifierCount
C#
public int GetBindingModifierCount();

Количество модификаторов уровня профиля. Не подтверждает поддержку их расширений или фактическое применение runtime.

Возвращает int

Количество сохранённых модификаторов соответствующего ресурса.

GetBindingModifiersReckfell.Collections.Array
# GetBindingModifiers
C#
public Reckfell.Collections.Array GetBindingModifiers();

Модификаторы уровня профиля, например OpenXRDpadBindingModifier. Getter создаёт новый Array, но ресурсы внутри общие: Clear() результата не удаляет модификаторы профиля. Setter снимает старые связи и добавляет ресурсы заново; возможны несколько Changed. Один модификатор принадлежит одному профилю и при переносе удаляется из прежнего. Не путайте с модификаторами отдельного OpenXRIPBinding; сохранение не гарантирует поддержку расширения runtime.

Возвращает Reckfell.Collections.Array

Новый Array со ссылками на те же ресурсы модификаторов; не глубокая копия.

GetBindingsReckfell.Collections.Array
# GetBindings
C#
public Reckfell.Collections.Array GetBindings();

Список OpenXRIPBinding. Getter возвращает общий Array; прямое редактирование меняет ресурс и обходит Changed/проверки. Setter очищает список и добавляет привязки; повтор одного экземпляра игнорируется, разные экземпляры с одинаковыми Action и BindingPath отклоняются. Самоприсваивание общего getter-массива очищает список. Для замены сначала Duplicate() контейнера; проверьте ненулевые элементы и дубли до вызова. Ресурсы внутри копии остаются общими.

Возвращает Reckfell.Collections.Array

Общий Array профиля; прямое изменение контейнера меняет профиль.

GetInteractionProfilePathstring
# GetInteractionProfilePath
C#
public string GetInteractionProfilePath();

Сохранённый полный путь профиля либо пустая строка. Это конфигурация ресурса, не отчёт о фактически выбранном runtime-профиле.

Возвращает string

Сохранённая строка профиля, изначально пустая.

SetBindingModifiersvoid
# SetBindingModifiers
C#
public void SetBindingModifiers(Reckfell.Collections.Array bindingModifiers);

Модификаторы уровня профиля, например OpenXRDpadBindingModifier. Getter создаёт новый Array, но ресурсы внутри общие: Clear() результата не удаляет модификаторы профиля. Setter снимает старые связи и добавляет ресурсы заново; возможны несколько Changed. Один модификатор принадлежит одному профилю и при переносе удаляется из прежнего. Не путайте с модификаторами отдельного OpenXRIPBinding; сохранение не гарантирует поддержку расширения runtime.

Параметры
ИмяТипПо умолчанию
bindingModifiersReckfell.Collections.Array—
bindingModifiers

Array модификаторов уровня профиля, например OpenXRDpadBindingModifier; не модификаторов отдельной привязки.

SetBindingsvoid
# SetBindings
C#
public void SetBindings(Reckfell.Collections.Array bindings);

Список OpenXRIPBinding. Getter возвращает общий Array; прямое редактирование меняет ресурс и обходит Changed/проверки. Setter очищает список и добавляет привязки; повтор одного экземпляра игнорируется, разные экземпляры с одинаковыми Action и BindingPath отклоняются. Самоприсваивание общего getter-массива очищает список. Для замены сначала Duplicate() контейнера; проверьте ненулевые элементы и дубли до вызова. Ресурсы внутри копии остаются общими.

Параметры
ИмяТипПо умолчанию
bindingsReckfell.Collections.Array—
bindings

Отдельный Array ненулевых OpenXRIPBinding без дублирующих пар Action/BindingPath. Для данных собственного getter сначала Duplicate() контейнера.

SetInteractionProfilePathvoid
# SetInteractionProfilePath
C#
public void SetInteractionProfilePath(string interactionProfilePath);

Полный путь interaction profile, изначально пустой; например /interaction_profiles/khr/simple_controller. Не имя действия и не путь конкретной кнопки. Setter использует метаданные движка, если они доступны, сохраняет путь и испускает Changed даже при повторе. Это не подтверждение поддержки профиля подключённым runtime.

Параметры
ИмяТипПо умолчанию
interactionProfilePathstring—
interactionProfilePath

Полный допустимый путь профиля, например /interaction_profiles/khr/simple_controller; не путь кнопки.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.