XRController

继承: XRNode < Item3D < Item < Object

表示空间跟踪控制器的3D节点。

描述

这是一个连接到控制器跟踪的辅助3D节点。它还为控制器上的按钮等状态提供了几个方便的通道。

控制器由其ID链接。您可以在控制器可用之前创建控制器节点。如果您的应用总是使用两个控制器(每手一个),您可以预先定义ID为1和2的控制器;一旦控制器被识别,它们就会变得活跃。如果您期望使用额外的控制器,您应该对信号做出反应,并将XRControlller3D节点添加到您的场景中。

控制器节点的位置由XRServer自动更新。这使得该节点非常适合添加子节点以可视化控制器。

由于许多XR运行时现在使用可配置的操作映射,因此所有输入都被命名。

方法


信号

button_pressed(name: String) 🔗

按下此控制器上的按钮时发出。


button_released(name: String) 🔗

释放此控制器上的按钮时发出。


input_float_changed(name: String, value: float) 🔗

当此控制器上的触发器或类似输入改变值时发出。


input_vector2_changed(name: String, value: Vector2) 🔗

移动此控制器上的操纵杆或拇指板时发出。


profile_changed(role: String) 🔗

此控制器上的交互配置文件更改时发出。


方法说明

float get_float(name: StringName) const 🔗

返回具有给定name的输入的数值。这用于触发器和抓握传感器。


Variant get_input(name: StringName) const 🔗

返回具有给定name的输入的Variant。这适用于任何输入类型,变体将根据操作配置进行键入。


TrackerHand get_tracker_hand() const 🔗

返回握住此控制器的手(如果已知)。请参阅TrackerHand


Vector2 get_vector2(name: StringName) const 🔗

返回具有给定name的输入的Vector2。这用于在许多控制器上找到的拇指棒和拇指垫。


bool is_button_pressed(name: StringName) const 🔗

如果按下具有给定name的按钮,则返回true