OpenXRDpadBindingModifier
Настройки D-pad для двухосевого ввода в профиле OpenXR.
OpenXRDpadBindingModifier относится к BindingModifiers профиля OpenXRInteractionProfile. ActionSet выбирает набор, InputPath — исходный двухосевой ввод, например /user/hand/right/input/thumbstick. Это не автоматически готовые игровые действия: направления D-pad должны быть привязаны в карте, а runtime должен поддерживать XR_EXT_dpad_binding и XR_KHR_binding_modification. Включение запрашивается через xr/openxr/binding_modifiers/dpad_binding.
Значения по умолчанию: Threshold=0.6, ThresholdReleased=0.4, CenterRegion=0.1, WedgeAngle=π/2, IsSticky=false. ActionSet=null, InputPath пуст, haptic-ссылки null. Setter диапазона допускает больше, чем контракт runtime: требуются конечные 0<ThresholdReleased≤Threshold≤1, 0<CenterRegion<1 и 0≤WedgeAngle<π. Эти ограничения, включая порядок порогов, проверяйте заранее. Контракт расширения OpenXR.
WedgeAngle в C# — радианы. Для 90° задайте Mathf.DegToRad(90); Inspector отображает градусы, но это не единицы API. Не вводите 90 в setter как готовое радианное значение.
ActionSet меняется без Changed. Остальные восемь setter испускают Changed даже при повторе. Ресурс набора и haptic-ресурсы остаются общими ссылками. Редактирование параметров не перестраивает модификатор уже подключённого XR-сеанса.
Начальные значения, радианы, события, ссылки и отсутствие проверки порядка порогов проверены без гарнитуры. Физические направления, липкость, расширения, вибрация и применение карты runtime не проверялись.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
OpenXRDpadBindingModifierКонструктор
public OpenXRDpadBindingModifier();Создаёт D-pad ресурс: Threshold=0.6, ThresholdReleased=0.4, CenterRegion=0.1, WedgeAngle=π/2, IsSticky=false, ActionSet=null, пустой InputPath и haptic-ссылки null. Не подключает модификатор к профилю.
Свойства9
ActionSetСвойство
public OpenXRActionSet ActionSet { get; set; }Ресурс набора, для которого задаётся D-pad, изначально null. Setter сохраняет ссылку без Changed, включая новое значение. Набор должен существовать в карте и быть создан в runtime до применения модификации. Назначение не включает набор и не добавляет модификатор в профиль.
CenterRegionСвойство
public float CenterRegion { get; set; }Радиус центральной области в пространстве значений ввода, изначально 0.1. Setter проверяет 0…1 включительно; допустимые runtime-границы уже, см. введение. Задавайте конечное значение. Changed испускается даже при повторе.
InputPathСвойство
public string InputPath { get; set; }Полный путь исходного двухосевого ввода, изначально пустой; например /user/hand/right/input/thumbstick. Это не путь отдельного направления D-pad и не имя действия. Setter хранит строку и испускает Changed даже при повторе; допустимость пути требует проверки профиля/runtime.
IsStickyСвойство
public bool IsSticky { get; set; }Флаг фиксации первого активированного направления до отпускания исходного ввода; изначально false. Это параметр runtime, не локальный вычислитель направлений. Setter испускает Changed даже при повторе. Поведение на контроллере этим прогоном не проверялось.
OffHapticСвойство
public OpenXRHapticBase OffHaptic { get; set; }Ресурс обратной связи для выключения модифицированного ввода, изначально null. Ссылка общая; setter испускает Changed даже при повторе. null снимает запрос. Это данные для поддерживающего модификатор runtime, не немедленный вызов вибрации.
OnHapticСвойство
public OpenXRHapticBase OnHaptic { get; set; }Ресурс обратной связи для включения модифицированного ввода, изначально null. Getter возвращает тот же ресурс; setter испускает Changed даже при повторе. null отключает этот запрос обратной связи. Назначение не посылает импульс немедленно и не подтверждает поддержку устройства.
ThresholdСвойство
public float Threshold { get; set; }Порог включения D-pad, изначально 0.6. Setter допускает числовой диапазон 0…1, но полные требования runtime строже: смотрите введение. Конечность и порядок с ThresholdReleased проверяйте сами. Changed испускается даже при повторе.
ThresholdReleasedСвойство
public float ThresholdReleased { get; set; }Порог выключения D-pad, изначально 0.4. Setter допускает числовой диапазон 0…1 без проверки порядка с Threshold. Проверяйте контракт runtime, конечность и согласованность пары; Changed испускается при повторе.
WedgeAngleСвойство
public float WedgeAngle { get; set; }Угол сектора в радианах, изначально π/2. Inspector отображает градусы, но C# setter/getter используют радианы: для 90° передайте Mathf.DegToRad(90). Setter не проверяет диапазон и испускает Changed даже при повторе. Валидные runtime-границы приведены во введении.
Методы18
GetActionSetOpenXRActionSet
public OpenXRActionSet GetActionSet();Та же ссылка на набор действия либо null; не runtime handle.
OpenXRActionSetТа же ссылка на набор действия либо null; не runtime handle.
GetCenterRegionfloat
public float GetCenterRegion();Сохранённый радиус центральной области в единицах ввода, изначально 0.1.
floatСохранённый радиус центральной области в единицах ввода, изначально 0.1.
GetInputPathstring
public string GetInputPath();Сохранённый полный путь исходного ввода, изначально пустой.
stringСохранённый полный путь исходного ввода, изначально пустой.
GetIsStickybool
public bool GetIsSticky();Сохранённый флаг фиксации направления, изначально false.
boolСохранённый флаг фиксации направления, изначально false.
GetOffHapticOpenXRHapticBase
public OpenXRHapticBase GetOffHaptic();Та же ссылка на ресурс импульса выключения либо null.
OpenXRHapticBaseТа же ссылка на ресурс импульса выключения либо null.
GetOnHapticOpenXRHapticBase
public OpenXRHapticBase GetOnHaptic();Та же ссылка на ресурс импульса включения либо null.
OpenXRHapticBaseТа же ссылка на ресурс импульса включения либо null.
GetThresholdfloat
public float GetThreshold();Сохранённый порог включения D-pad, изначально 0.6.
floatСохранённый порог включения D-pad, изначально 0.6.
GetThresholdReleasedfloat
public float GetThresholdReleased();Сохранённый порог выключения D-pad, изначально 0.4.
floatСохранённый порог выключения D-pad, изначально 0.4.
GetWedgeAnglefloat
public float GetWedgeAngle();Сохранённый угол в радианах, изначально π/2. Не градусы Inspector.
floatСохранённый угол в радианах, изначально π/2. Не градусы Inspector.
SetActionSetvoid
public void SetActionSet(OpenXRActionSet actionSet);Ресурс набора, для которого задаётся D-pad, изначально null. Setter сохраняет ссылку без Changed, включая новое значение. Набор должен существовать в карте и быть создан в runtime до применения модификации. Назначение не включает набор и не добавляет модификатор в профиль.
| Имя | Тип | По умолчанию |
|---|---|---|
actionSet | OpenXRActionSet | — |
actionSetРесурс набора карты, для которого предназначен D-pad. Не его строковое имя и не RID.
SetCenterRegionvoid
public void SetCenterRegion(float centerRegion);Радиус центральной области в пространстве значений ввода, изначально 0.1. Setter проверяет 0…1 включительно; допустимые runtime-границы уже, см. введение. Задавайте конечное значение. Changed испускается даже при повторе.
| Имя | Тип | По умолчанию |
|---|---|---|
centerRegion | float | — |
centerRegionКонечный радиус центральной области в единицах ввода; соблюдайте runtime-границы.
SetInputPathvoid
public void SetInputPath(string inputPath);Полный путь исходного двухосевого ввода, изначально пустой; например /user/hand/right/input/thumbstick. Это не путь отдельного направления D-pad и не имя действия. Setter хранит строку и испускает Changed даже при повторе; допустимость пути требует проверки профиля/runtime.
| Имя | Тип | По умолчанию |
|---|---|---|
inputPath | string | — |
inputPathПолный путь поддерживаемого двухосевого ввода, например /user/hand/right/input/thumbstick.
SetIsStickyvoid
public void SetIsSticky(bool isSticky);Флаг фиксации первого активированного направления до отпускания исходного ввода; изначально false. Это параметр runtime, не локальный вычислитель направлений. Setter испускает Changed даже при повторе. Поведение на контроллере этим прогоном не проверялось.
| Имя | Тип | По умолчанию |
|---|---|---|
isSticky | bool | — |
isStickytrue для фиксации первого направления до отпускания исходного ввода.
SetOffHapticvoid
public void SetOffHaptic(OpenXRHapticBase haptic);Ресурс обратной связи для выключения модифицированного ввода, изначально null. Ссылка общая; setter испускает Changed даже при повторе. null снимает запрос. Это данные для поддерживающего модификатор runtime, не немедленный вызов вибрации.
| Имя | Тип | По умолчанию |
|---|---|---|
haptic | OpenXRHapticBase | — |
hapticРесурс OpenXRHapticBase, например OpenXRHapticVibration, либо null для отключения этого запроса.
SetOnHapticvoid
public void SetOnHaptic(OpenXRHapticBase haptic);Ресурс обратной связи для включения модифицированного ввода, изначально null. Getter возвращает тот же ресурс; setter испускает Changed даже при повторе. null отключает этот запрос обратной связи. Назначение не посылает импульс немедленно и не подтверждает поддержку устройства.
| Имя | Тип | По умолчанию |
|---|---|---|
haptic | OpenXRHapticBase | — |
hapticРесурс OpenXRHapticBase, например OpenXRHapticVibration, либо null для отключения этого запроса.
SetThresholdvoid
public void SetThreshold(float threshold);Порог включения D-pad, изначально 0.6. Setter допускает числовой диапазон 0…1, но полные требования runtime строже: смотрите введение. Конечность и порядок с ThresholdReleased проверяйте сами. Changed испускается даже при повторе.
| Имя | Тип | По умолчанию |
|---|---|---|
threshold | float | — |
thresholdКонечный порог включения D-pad; учитывайте более строгий контракт runtime во введении.
SetThresholdReleasedvoid
public void SetThresholdReleased(float thresholdReleased);Порог выключения D-pad, изначально 0.4. Setter допускает числовой диапазон 0…1 без проверки порядка с Threshold. Проверяйте контракт runtime, конечность и согласованность пары; Changed испускается при повторе.
| Имя | Тип | По умолчанию |
|---|---|---|
thresholdReleased | float | — |
thresholdReleasedКонечный порог выключения, не выше Threshold; учитывайте контракт runtime.
SetWedgeAnglevoid
public void SetWedgeAngle(float wedgeAngle);Угол сектора в радианах, изначально π/2. Inspector отображает градусы, но C# setter/getter используют радианы: для 90° передайте Mathf.DegToRad(90). Setter не проверяет диапазон и испускает Changed даже при повторе. Валидные runtime-границы приведены во введении.
| Имя | Тип | По умолчанию |
|---|---|---|
wedgeAngle | float | — |
wedgeAngleУгол в радианах. При исходных градусах сначала вызовите Mathf.DegToRad; допустимые границы см. во введении.