XRPositionalTracker

Наследует: XRTracker < RefCounted < Object

Наследуется от: OpenXRSpatialEntityTracker, XRBodyTracker, XRControllerTracker, XRHandTracker

Отслеживаемый объект.

Описание

Экземпляр этого объекта представляет отслеживаемое устройство, например контроллер или опорную точку. HMD здесь не представлены, так как они обрабатываются внутри.

Поскольку контроллеры включены и XRInterface обнаруживает их, экземпляры этого объекта автоматически добавляются в этот список активных объектов отслеживания, доступных через XRServer.

XRNode3D и XRAnchor3D оба потребляют объекты этого типа и должны использоваться в вашем проекте. Позиционные трекеры — это просто внутренние объекты, которые заставляют все это работать. Они в основном открыты, чтобы интерфейсы на основе GDExtension могли взаимодействовать с ними.

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

Свойства

TrackerHand

hand

0

String

profile

""

Методы

Variant

get_input(name: StringName) const

XRPose

get_pose(name: StringName) const

bool

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_changed(pose: XRPose) 🔗

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


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 🔗

Определяет, к какой руке относится этот трекер.


String profile = "" 🔗

  • void set_tracker_profile(value: String)

  • String get_tracker_profile()

Профиль, связанный с этим трекером, зависит от интерфейса, но будет указывать тип отслеживаемого контроллера.


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

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 и не должен использоваться напрямую.