XRPositionalTracker

继承: XRTracker < RefCounted < Object

派生: XRBodyTracker, XRControllerTracker, XRHandTracker

追踪对象。

描述

此对象的一个实例,表示一个被追踪的设备,例如一个控制器或锚点。HMD 没有在此处表示,因为它们是在内部处理的。

当控制器被打开,并且 XRInterface 检测到它们时,该对象的实例会自动被添加到可通过 XRServer 访问的活动追踪对象列表中。

XRNode3DXRAnchor3D 都使用这种类型的对象,并且应该在你的项目中使用。位置追踪器只是使这一切正常工作的底层对象。这些大部分都是公开的,以便基于 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 🔗

返回绑定 name 姿势的当前 XRPose 状态对象。


bool has_pose(name: StringName) const 🔗

如果追踪器可用,并且当前正在追踪绑定的 name 姿势,则返回 true


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 实现调用,不应直接使用。