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.
Checking the stable version of the documentation...
XRController3D
继承: XRNode3D < Node3D < Node < Object
表示空间跟踪控制器的 3D 节点。
描述
这是一个辅助 3D 节点,链接到控制器的跟踪。它还为控制器上的按钮等状态提供了一些方便的直通方式。
控制器通过其 ID 链接。可以在控制器可用之前创建控制器节点。如果游戏总是使用两个控制器(每只手一个),可以预定义 ID 为 1 和 2 的控制器;一旦控制器被识别,它们将被立即激活。如果希望使用额外的控制器,应该对这些信号做出反应并将 XRController3D 节点添加到场景中。
控制器节点的位置由 XRServer 自动更新。这使得该节点非常适合添加子节点以可视化控制器。
输入的名称由当前的 XRInterface 定义。使用 OpenXR 时,是 OpenXR 动作映射的当前动作集中的动作名称。
教程
方法
get_float(name: StringName) const |
|
get_input(name: StringName) const |
|
get_tracker_hand() const |
|
get_vector2(name: StringName) const |
|
is_button_pressed(name: StringName) const |
信号
button_pressed(action_name: String) 🔗
当该控制器上的一个按钮被按下时触发。
button_released(action_name: String) 🔗
当该控制器上的一个按钮被释放时触发。
input_float_changed(action_name: String, value: float) 🔗
当该控制器上的触发器或类似输入更改值时发出。
input_vector2_changed(action_name: String, value: Vector2) 🔗
当该控制器上的拇指杆或拇指板被移动时发出。
profile_changed(role: String) 🔗
当该控制器上的交互配置文件发生改变时发出。
方法说明
float get_float(name: StringName) const 🔗
返回名称为 name 的输入对应的数值。适用于扳机和握力传感器等输入。
注意:各个输入的 name 由当前的 XRInterface 定义。如果是 OpenXR,则为当前动作集中动作的名称。
Variant get_input(name: StringName) const 🔗
返回名称为 name 的输入对应的 Variant。适用于所有输入类型,变体的具体类型由动作配置决定。
注意:各个输入的 name 由当前的 XRInterface 定义。如果是 OpenXR,则为当前动作集中动作的名称。
TrackerHand get_tracker_hand() const 🔗
返回持握这个控制器的手,如果已知。
Vector2 get_vector2(name: StringName) const 🔗
返回名称为 name 的输入对应的 Vector2。适用于许多控制器上能够找到的摇杆和触摸板。
注意:各个输入的 name 由当前的 XRInterface 定义。如果是 OpenXR,则为当前动作集中动作的名称。
bool is_button_pressed(name: StringName) const 🔗
如果名称为 name 的按钮处于按下状态,则返回 true。
注意:各个输入的 name 由当前的 XRInterface 定义。如果是 OpenXR,则为当前动作集中动作的名称。