XRPositionalTracker
Наследует: XRTracker < RefCounted < Object
Наследуется от: OpenXRSpatialEntityTracker, XRBodyTracker, XRControllerTracker, XRHandTracker
Отслеживаемый объект.
Описание
Экземпляр этого объекта представляет отслеживаемое устройство, например контроллер или опорную точку. HMD здесь не представлены, так как они обрабатываются внутри.
Поскольку контроллеры включены и XRInterface обнаруживает их, экземпляры этого объекта автоматически добавляются в этот список активных объектов отслеживания, доступных через XRServer.
XRNode3D и XRAnchor3D оба потребляют объекты этого типа и должны использоваться в вашем проекте. Позиционные трекеры — это просто внутренние объекты, которые заставляют все это работать. Они в основном открыты, чтобы интерфейсы на основе GDExtension могли взаимодействовать с ними.
Обучающие материалы
Свойства
|
||
|
Методы
get_input(name: StringName) const |
|
get_pose(name: StringName) const |
|
has_pose(name: StringName) const |
|
void |
invalidate_pose(name: StringName) |
void |
set_input(name: StringName, value: Variant) |
void |
set_pose(name: StringName, transform: Transform3D, linear_velocity: Vector3, angular_velocity: Vector3, tracking_confidence: TrackingConfidence) |
Сигналы
button_pressed(name: String) 🔗
Вызывается при нажатии кнопки на этом трекере. Обратите внимание, что многие среды выполнения XR позволяют сопоставлять другие входы с кнопками.
button_released(name: String) 🔗
Издается, когда кнопка на этом трекере отпускается.
input_float_changed(name: String, value: float) 🔗
Выдается, когда триггер или аналогичный вход на этом трекере изменяет значение.
input_vector2_changed(name: String, vector: Vector2) 🔗
Издается при перемещении джойстика или панели управления на этом трекере.
Выдается при изменении состояния позы, отслеживаемой этим трекером.
pose_lost_tracking(pose: XRPose) 🔗
Генерируется, когда поза, отслеживаемая этим трекером, перестает получать обновленные данные отслеживания.
profile_changed(role: String) 🔗
Выдается при изменении профиля нашего трекера.
Перечисления
enum TrackerHand: 🔗
TrackerHand TRACKER_HAND_UNKNOWN = 0
Рука, в которой находится этот трекер, неизвестна или неприменима.
TrackerHand TRACKER_HAND_LEFT = 1
Этот трекер — левый контроллер.
TrackerHand TRACKER_HAND_RIGHT = 2
Этот трекер является правым контроллером.
TrackerHand TRACKER_HAND_MAX = 3
Представляет размер перечисления TrackerHand.
Описания свойств
TrackerHand hand = 0 🔗
void set_tracker_hand(value: TrackerHand)
TrackerHand get_tracker_hand()
Определяет, к какой руке относится этот трекер.
Профиль, связанный с этим трекером, зависит от интерфейса, но будет указывать тип отслеживаемого контроллера.
Описания метода
Variant get_input(name: StringName) const 🔗
Устарело: Use through XRControllerTracker.
Возвращает входные данные для этого трекера. Он может возвращать логическое значение, значение с плавающей точкой или значение Vector2 в зависимости от того, является ли входные данные кнопкой, триггером или джойстиком/кнопочной панелью.
XRPose get_pose(name: StringName) const 🔗
Возвращает текущий объект состояния XRPose для привязанной позы name.
bool has_pose(name: StringName) const 🔗
Возвращает true, если трекер доступен и в данный момент отслеживает привязанную позу name.
void invalidate_pose(name: StringName) 🔗
Отмечает эту позу как недействительную, мы не очищаем последнее сообщенное состояние, но позволяет пользователям решать, следует ли скрывать трекеры, если мы теряем отслеживание, или просто оставаться в их последнем известном положении.
void set_input(name: StringName, value: Variant) 🔗
Устарело: Use through XRControllerTracker.
Изменяет значение указанного входного параметра. Этот метод вызывается реализацией XRInterface и не должен использоваться напрямую.
void set_pose(name: StringName, transform: Transform3D, linear_velocity: Vector3, angular_velocity: Vector3, tracking_confidence: TrackingConfidence) 🔗
Задаёт преобразование, линейную и угловую скорость, а также уровень достоверности отслеживания для заданной позы. Этот метод вызывается реализацией XRInterface и не должен использоваться напрямую.