XRPositionalTracker
继承: XRTracker < RefCounted < Object
派生: 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 🔗
返回绑定 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 实现调用,不应直接使用。