Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

XRPositionalTracker

继承: RefCounted < Object

追踪对象。

描述

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

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

XRController3DXRAnchor3D 都使用这种类型的对象,并且应该在你的项目中使用。位置追踪器只是使这一切正常工作的底层对象。这些大部分都是公开的,以便基于 GDExtension 的接口,可以与它们交互。

教程

属性

String

description

""

TrackerHand

hand

0

StringName

name

&"Unknown"

String

profile

""

TrackerType

type

128

方法

Variant

get_input ( StringName name ) const

XRPose

get_pose ( StringName name ) const

bool

has_pose ( StringName name ) const

void

invalidate_pose ( StringName name )

void

set_input ( StringName name, Variant value )

void

set_pose ( StringName name, Transform3D transform, Vector3 linear_velocity, Vector3 angular_velocity, TrackingConfidence tracking_confidence )


信号

button_pressed ( String name )

当该追踪器上的一个按钮被按下时发出。请注意,许多 XR 运行时允许将其他输入映射到按钮。


button_released ( String name )

当该追踪器上的一个按钮被释放时发出。


input_float_changed ( String name, float value )

当此追踪器上的一个触发器或类似输入更改值时发出。


input_vector2_changed ( String name, Vector2 vector )

当该追踪器上的一个拇指杆或拇指板移动时发出。


pose_changed ( XRPose pose )

当被此追踪器追踪的一个姿势状态发生变化时发出。


pose_lost_tracking ( XRPose pose )

当被该追踪器追踪的一个姿势停止获取更新的跟踪数据时发出。


profile_changed ( String role )

当我们的追踪器的配置发生变化时发出。


枚举

enum TrackerHand:

TrackerHand TRACKER_HAND_UNKNOWN = 0

手持该追踪器的手是未知的或不适用的。

TrackerHand TRACKER_HAND_LEFT = 1

此跟踪器是左手控制器。

TrackerHand TRACKER_HAND_RIGHT = 2

此跟踪器是右手控制器。


属性说明

String description = ""

  • void set_tracker_desc ( String value )

  • String get_tracker_desc ( )

此追踪器的描述。


TrackerHand hand = 0

定义此追踪器与哪只手相关。


StringName name = &"Unknown"

此追踪器的唯一名称。可用的追踪器因各种 XR 运行时而异,并且通常可以由用户配置。Godot 维护了一些保留名称,如果可应用,它希望 XRInterface 来实现:

  • left_hand 标识玩家左手握持的控制器

  • right_hand 标识玩家右手握持的控制器


String profile = ""

  • void set_tracker_profile ( String value )

  • String get_tracker_profile ( )

与此追踪器关联的配置,取决于界面,但将指示被追踪的控制器类型。


TrackerType type = 128

该追踪器的类型。


方法说明

Variant get_input ( StringName name ) const

返回此追踪器的输入。它可以返回一个布尔值、浮点数或 Vector2 值,具体取决于输入是一个按钮、触发器还是拇指杆/拇指板。


XRPose get_pose ( StringName name ) const

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


bool has_pose ( StringName name ) const

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


void invalidate_pose ( StringName name )

将此姿势标记为无效,我们不会清除最后报告的状态,但如果我们失去追踪,它允许用户决定是否需要隐藏追踪器,或仅保留在其最后一个已知位置。


void set_input ( StringName name, Variant value )

更改给定输入的值。此方法由一个 XRInterface 实现调用,不应直接使用。


void set_pose ( StringName name, Transform3D transform, Vector3 linear_velocity, Vector3 angular_velocity, TrackingConfidence tracking_confidence )

设置给定姿势的变换、线速度、角速度和追踪置信度。此方法由一个 XRInterface 实现调用,不应直接使用。