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.

XRController3D

Hereda: XRNode3D < Node3D < Node < Object

Un nodo 3D que representa un controlador rastreado espacialmente.

Descripción

Este es un nodo 3D auxiliar vinculado al seguimiento de los mandos. También ofrece varias conexiones útiles al estado de los botones y demás en los mandos.

Los mandos se vinculan por su ID. Puedes crear nodos de mando antes de que estén disponibles. Si tu juego siempre usa dos mandos (uno para cada mano), puedes predefinirlos con los ID 1 y 2; se activarán en cuanto se identifiquen. Si prevés el uso de mandos adicionales, debes reaccionar a las señales y añadir nodos XRController3D a tu escena.

La posición del nodo de mando se actualiza automáticamente mediante XRServer. Esto hace que este nodo sea ideal para añadir nodos hijos y visualizar el mando.

La XRInterface actual define los nombres de las entradas. En el caso de OpenXR, estos son los nombres de las acciones del conjunto de acciones actual del mapa de acciones de OpenXR.

Tutoriales

Métodos

float

get_float(name: StringName) const

Variant

get_input(name: StringName) const

TrackerHand

get_tracker_hand() const

Vector2

get_vector2(name: StringName) const

bool

is_button_pressed(name: StringName) const


Señales

button_pressed(action_name: String) 🔗

Emitida cuando se presiona un botón de este controlador.


button_released(action_name: String) 🔗

Emitida cuando se libera un botón de este controlador.


input_float_changed(action_name: String, value: float) 🔗

Emitida cuando un disparador o entrada similar en este controlador cambia de valor.


input_vector2_changed(action_name: String, value: Vector2) 🔗

Emitida cuando se mueve un joystick o un pad en este controlador.


profile_changed(role: String) 🔗

Emitida cuando se cambia el perfil de interacción en este controlador.


Descripciones de Métodos

float get_float(name: StringName) const 🔗

Devuelve un valor numérico para la entrada con el name dado. Esto se utiliza para los gatillos y los sensores de agarre.

Nota: La XRInterface actual define el name para cada entrada. En el caso de OpenXR, estos son los nombres de las acciones en el conjunto de acciones actual.


Variant get_input(name: StringName) const 🔗

Devuelve una Variant para la entrada con el name dado. Esto funciona para cualquier tipo de entrada, la variante se tecleará de acuerdo con la configuración de las acciones.

Nota: La XRInterface actual define el name para cada entrada. En el caso de OpenXR, estos son los nombres de las acciones en el conjunto de acciones actual.


TrackerHand get_tracker_hand() const 🔗

Devuelve la mano que sostiene este controlador, si se conoce.


Vector2 get_vector2(name: StringName) const 🔗

Devuelve un Vector2 para la entrada con el name dado. Esto se utiliza para los joysticks y los paneles táctiles que se encuentran en muchos mandos.

Nota: La XRInterface actual define el name para cada entrada. En el caso de OpenXR, estos son los nombres de las acciones en el conjunto de acciones actual.


bool is_button_pressed(name: StringName) const 🔗

Devuelve true si el botón con el name dado está presionado.

Nota: La XRInterface actual define el name para cada entrada. En el caso de OpenXR, estos son los nombres de las acciones en el conjunto de acciones actual.