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
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
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 |
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.