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 自动更新。这使得该节点非常适合添加子节点以可视化控制器。
由于许多 XR 运行时现在使用可配置的动作映射,因此所有输入都被命名。
教程
方法
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(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
。