XRController3D

Наследует: XRNode3D < Node3D < Node < Object

Трехмерный узел, представляющий собой пространственно отслеживаемый контроллер.

Описание

Это вспомогательный 3D-узел, связанный с отслеживанием контроллеров. Он также предлагает несколько удобных проходов к состоянию кнопок и т. п. на контроллерах.

Контроллеры связаны по их ID идентификатору. Вы можете создать узлы контроллеров до того, как контроллеры станут доступны. Если в вашей игре всегда используются два контроллера (по одному для каждой руки), вы можете заранее определить контроллеры с идентификаторами 1 и 2; они станут активными, как только контроллеры будут идентифицированы. Если вы ожидаете использования дополнительных контроллеров, вы должны отреагировать на сигналы и добавить узлы XRController3D в вашу сцену.

Положение узла контроллера автоматически обновляется XRServer. Это делает этот узел идеальным для добавления дочерних узлов для визуализации контроллера.

Текущий XRInterface определяет имена входов. В случае OpenXR это имена действий в текущем наборе действий из карты действий OpenXR.

Обучающие материалы

Методы

float

get_float(name: StringName) const

Variant

get_input(name: StringName) const

TrackerHand

get_tracker_hand() const

Vector2

get_vector2(name: StringName) const

bool

is_button_pressed(name: StringName) const


Сигналы

button_pressed(name: String) 🔗

Издается при нажатии кнопки на этом контроллере.


button_released(name: String) 🔗

Издается при отпускании кнопки на этом контроллере.


input_float_changed(name: String, value: float) 🔗

Генерируется, когда триггер или аналогичный вход на этом контроллере изменяют значение.


input_vector2_changed(name: String, value: Vector2) 🔗

Издается при перемещении мини-джойстика или панели большого пальца на этом контроллере.


profile_changed(role: String) 🔗

Выдается при изменении профиля взаимодействия на этом контроллере.


Описания метода

float get_float(name: StringName) const 🔗

Возвращает числовое значение для входа с заданным name. Используется для триггеров и датчиков захвата.

Примечание: Текущий XRInterface определяет name для каждого входа. В случае OpenXR это имена действий в текущем наборе действий.


Variant get_input(name: StringName) const 🔗

Возвращает Variant для ввода с заданным name. Это работает для любого типа ввода, вариант будет типизирован в соответствии с конфигурацией действий.

Примечание: Текущий XRInterface определяет name для каждого ввода. В случае OpenXR это имена действий в текущем наборе действий.


TrackerHand get_tracker_hand() const 🔗

Возвращает руку, держащую этот контроллер, если она известна.


Vector2 get_vector2(name: StringName) const 🔗

Возвращает Vector2 для ввода с заданным name. Используется для thumbsticks и thumbpads, имеющихся на многих контроллерах.

Примечание: Текущий XRInterface определяет name для каждого ввода. В случае OpenXR это имена действий в текущем наборе действий.


bool is_button_pressed(name: StringName) const 🔗

Возвращает true, если нажата кнопка с заданным name.

Примечание: Текущий XRInterface определяет name для каждого входа. В случае OpenXR это имена действий в текущем наборе действий.