Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

XRNode3D

继承: Node3D < Node < Object

派生: XRAnchor3D, XRController3D

位置由 XRServer 自动更新的 3D 节点。

描述

这个节点可以绑定到 XRPositionalTracker 的某个姿势,XRServer 会自动更新其 Node3D.transform。这类节点必须添加为 XROrigin3D 节点的子节点。

教程

属性

PhysicsInterpolationMode

physics_interpolation_mode

2 (overrides Node)

StringName

pose

&"default"

bool

show_when_tracked

false

StringName

tracker

&""

方法

bool

get_has_tracking_data() const

bool

get_is_active() const

XRPose

get_pose()

void

trigger_haptic_pulse(action_name: String, frequency: float, amplitude: float, duration_sec: float, delay_sec: float)


信号

tracking_changed(tracking: bool) 🔗

tracker 开始或停止接收正被跟踪的 pose 的更新跟踪数据时发出。tracking 参数指示跟踪器是否正在获取更新的跟踪数据。


属性说明

StringName pose = &"default" 🔗

我们绑定到的姿势的名称。设计时并不知道跟踪器支持哪些姿势。

Godot 定义了许多标准姿势名称,例如 aimgrip,但也可以在给定的 XRInterface 中配置其他名称。


bool show_when_tracked = false 🔗

  • void set_show_when_tracked(value: bool)

  • bool get_show_when_tracked()

启用在跟踪开始时显示节点,并在跟踪丢失时隐藏节点。


StringName tracker = &"" 🔗

我们绑定到的追踪器的名称。设计时并不知道有哪些跟踪器可用。

Godot 定义了许多标准跟踪器,例如 left_handright_hand,但也可以在给定的 XRInterface 中配置其他跟踪器。


方法说明

bool get_has_tracking_data() const 🔗

如果 tracker 中有被跟踪 pose 的当前跟踪数据,则返回 true


bool get_is_active() const 🔗

如果 tracker 已注册,并且 pose 正在被追踪,则返回 true


XRPose get_pose() 🔗

返回包含被跟踪姿势的当前状态的 XRPose。这可以访问此姿势的其他属性。


void trigger_haptic_pulse(action_name: String, frequency: float, amplitude: float, duration_sec: float, delay_sec: float) 🔗

在与该接口关联的设备上触发触觉脉冲。

action_name 是该脉冲的操作名称。

frequency 是该脉冲的频率,设置为 0.0 可让系统使用默认频率。

amplitude 是介于 0.01.0 之间的脉冲幅度。

duration_sec 是脉冲的持续时间(单位为秒)。

delay_sec 是发出脉冲之前的延迟(单位为秒)。