XRController3D
Наследует: XRNode3D < Node3D < Node < Object
Трехмерный узел, представляющий собой пространственно отслеживаемый контроллер.
Описание
Это вспомогательный 3D-узел, связанный с отслеживанием контроллеров. Он также предлагает несколько удобных проходов к состоянию кнопок и т. п. на контроллерах.
Контроллеры связаны по их ID идентификатору. Вы можете создать узлы контроллеров до того, как контроллеры станут доступны. Если в вашей игре всегда используются два контроллера (по одному для каждой руки), вы можете заранее определить контроллеры с идентификаторами 1 и 2; они станут активными, как только контроллеры будут идентифицированы. Если вы ожидаете использования дополнительных контроллеров, вы должны отреагировать на сигналы и добавить узлы XRController3D в вашу сцену.
Положение узла контроллера автоматически обновляется XRServer. Это делает этот узел идеальным для добавления дочерних узлов для визуализации контроллера.
Текущий XRInterface определяет имена входов. В случае OpenXR это имена действий в текущем наборе действий из карты действий OpenXR.
Обучающие материалы
Методы
get_float(name: StringName) const |
|
get_input(name: StringName) const |
|
get_tracker_hand() const |
|
get_vector2(name: StringName) const |
|
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 это имена действий в текущем наборе действий.