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

Eredita: XRNode3D < Node3D < Node < Object

Un nodo 3D che rappresenta un controller tracciato nello spazio.

Descrizione

Questo è un nodo 3D ausiliare collegato al tracciamento dei controller. Offre anche diversi utili passthrough allo stato dei pulsanti e simili sui controller.

I controller sono collegati tramite il loro ID. È possibile creare nodi controller prima che i controller siano disponibili. Se il tuo gioco utilizza sempre due controller (uno per ogni mano), puoi predefinire i controller con ID 1 e 2; diventeranno attivi non appena i controller saranno identificati. Se prevedi che siano utilizzati controller aggiuntivi, dovresti reagire ai segnali e aggiungere nodi XRController3D alla tua scena.

La posizione del nodo controller è aggiornata automaticamente dal XRServer. Ciò rende questo nodo ideale per aggiungere nodi figlio per visualizzare il controller.

L'XRInterface attuale definisce i nomi degli input. Nel caso di OpenXR, questi sono i nomi delle azioni nell'insieme di azioni attuale dalla mappa di azioni di OpenXR.

Tutorial

Metodi

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


Segnali

button_pressed(action_name: String) 🔗

Emesso quando un pulsante su questo controller viene premuto.


button_released(action_name: String) 🔗

Emesso quando un pulsante su questo controller viene rilasciato.


input_float_changed(action_name: String, value: float) 🔗

Emesso quando un grilletto o un input simile su questo controller cambia valore.


input_vector2_changed(action_name: String, value: Vector2) 🔗

Emesso quando una levetta o un thumbpad su questo controller viene mosso.


profile_changed(role: String) 🔗

Emesso quando il profilo di interazione su questo controller viene cambiato.


Descrizioni dei metodi

float get_float(name: StringName) const 🔗

Restituisce un valore numerico per l'input con il nome name. È utilizzato per grilletti e sensori grip.

Nota: L'attuale XRInterface definisce il name per ciascun input. Nel caso di OpenXR, questi sono i nomi delle azioni nell'insieme di azioni attuale.


Variant get_input(name: StringName) const 🔗

Restituisce una Variant per l'input con il nome name. Funziona per qualsiasi tipo di input, la variante sarà tipizzata in base alla configurazione delle azioni.

Nota: L'interfaccia attuale di XRInterface definisce il name per ogni input. Nel caso di OpenXR, questi sono i nomi delle azioni nell'insieme di azioni attuale.


TrackerHand get_tracker_hand() const 🔗

Restituisce la mano che mantiene questo controller, se nota.


Vector2 get_vector2(name: StringName) const 🔗

Restituisce un Vector2 per l'input con il nome name. È utilizzato per le levette e i thumbpad presenti su molti controller.

Nota: L'interfaccia attuale di XRInterface definisce il name per ogni input. Nel caso di OpenXR, questi sono i nomi delle azioni nell'insieme di azioni attuale.


bool is_button_pressed(name: StringName) const 🔗

Restituisce true se il pulsante con il nome name è premuto.

Nota: L'attuale XRInterface definisce il name per ciascun input. Nel caso di OpenXR, questi sono i nomi delle azioni nell'insieme di azioni attuale.