Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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(action_name: String) 🔗
Издается при нажатии кнопки на этом контроллере.
button_released(action_name: String) 🔗
Издается при отпускании кнопки на этом контроллере.
input_float_changed(action_name: String, value: float) 🔗
Генерируется, когда триггер или аналогичный вход на этом контроллере изменяют значение.
input_vector2_changed(action_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 это имена действий в текущем наборе действий.