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...
PhysicsDirectBodyState3D
Eredita: Object
Ereditato da: PhysicsDirectBodyState3DExtension
Fornisce accesso diretto a un corpo fisico nel PhysicsServer3D.
Descrizione
Fornisce accesso diretto a un corpo fisico nel PhysicsServer3D, consentendo modifiche sicure alle proprietà di fisica. Questo oggetto è passato tramite il callback di stato diretto di RigidBody3D ed è pensato per modificare lo stato diretto di quel corpo. Vedi RigidBody3D._integrate_forces().
Tutorial
Proprietà
Metodi
Descrizioni delle proprietà
La velocità di rotazione del corpo in radianti al secondo.
Vector3 get_center_of_mass()
La posizione del centro di massa del corpo rispetto al centro del corpo nel sistema di coordinate globale.
Vector3 center_of_mass_local 🔗
Vector3 get_center_of_mass_local()
Posizione del centro di massa del corpo nel sistema di coordinate locale del corpo.
Lo strato di collisione del corpo.
La maschera di collisione del corpo.
Vector3 get_inverse_inertia()
L'inverso dell'inerzia del corpo.
Basis inverse_inertia_tensor 🔗
Basis get_inverse_inertia_tensor()
L'inverso del tensore d'inerzia del corpo.
float get_inverse_mass()
L'inverso della massa del corpo.
La velocità lineare del corpo in unità al secondo.
Basis principal_inertia_axes 🔗
Basis get_principal_inertia_axes()
There is currently no description for this property. Please help us by contributing one!
Se true, questo corpo è attualmente in riposo (non attivo).
float get_step()
Il passo temporale (delta) utilizzato per la simulazione.
float get_total_angular_damp()
La frequenza alla quale il corpo smette di ruotare, se non ci sono altre forze che lo muovono.
Vector3 get_total_gravity()
Il vettore di gravità totale attualmente applicato a questo corpo.
float get_total_linear_damp()
La frequenza con cui il corpo smette di muoversi, se non ci sono altre forze che lo muovono.
Transform3D transform 🔗
void set_transform(value: Transform3D)
Transform3D get_transform()
La matrice di trasformazione del corpo.
Descrizioni dei metodi
void add_constant_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Aggiunge una forza direzionale costante senza influenzare la rotazione che continua a essere applicata nel tempo finché non viene cancellata con constant_force = Vector3(0, 0, 0).
Ciò equivale a usare add_constant_force() al centro di massa del corpo.
void add_constant_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Aggiunge una forza posizionata costante al corpo che continua a essere applicata nel tempo finché non viene cancellata con constant_force = Vector3(0, 0, 0).
position è lo scostamento dall'origine del corpo in coordinate globali.
void add_constant_torque(torque: Vector3) 🔗
Aggiunge una forza rotazionale costante senza influenzare la posizione che continua a essere applicata nel tempo finché non viene cancellata con constant_torque = Vector3(0, 0, 0).
void apply_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Applica una forza direzionale senza influenzare la rotazione. Una forza è dipendente dal tempo e pensata per essere applicata a ogni aggiornamento della fisica
Ciò equivale a usare apply_force() al centro di massa del corpo.
void apply_central_impulse(impulse: Vector3 = Vector3(0, 0, 0)) 🔗
Applica un impulso direzionale senza influenzare la rotazione.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
Ciò equivale a usare apply_impulse() al centro di massa del corpo.
void apply_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Applica una forza posizionata al corpo. Una forza è dipendente dal tempo e deve essere applicata a ogni aggiornamento della fisica.
position è lo scostamento dall'origine del corpo in coordinate globali.
void apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Applica un impulso posizionato al corpo.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
position è lo scostamento dall'origine del corpo in coordinate globali.
void apply_torque(torque: Vector3) 🔗
Applica una forza rotazionale senza influenzare la posizione. Una forza è dipendente dal tempo e deve essere applicata a ogni aggiornamento della fisica.
Nota: inverse_inertia è necessario affinché questo funzioni. Per avere inverse_inertia, un CollisionShape3D attivo deve essere un figlio del nodo, oppure è possibile impostare manualmente inverse_inertia.
void apply_torque_impulse(impulse: Vector3) 🔗
Applica un impulso rotazionale al corpo senza influenzare la posizione.
Un impulso è indipendente dal tempo! Applicare un impulso a ogni frame risulterebbe in una forza dipendente dal frame rate. Per questo motivo, dovrebbe essere utilizzato solo quando si simulano impatti singoli (altrimenti, utilizza le funzioni "_force").
Nota: inverse_inertia è necessario affinché questo funzioni. Per avere inverse_inertia, un CollisionShape3D attivo deve essere un figlio del nodo, oppure è possibile impostare manualmente inverse_inertia.
Vector3 get_constant_force() const 🔗
Restituisce le forze posizionali costanti totali del corpo applicate durante ogni aggiornamento della fisica.
Vedi add_constant_force() e add_constant_central_force().
Vector3 get_constant_torque() const 🔗
Restituisce le forze rotazionali costanti totali del corpo applicate durante ogni aggiornamento della fisica.
Vedi add_constant_torque().
RID get_contact_collider(contact_idx: int) const 🔗
Restituisce il RID del collisore.
int get_contact_collider_id(contact_idx: int) const 🔗
Restituisce l'ID dell'oggetto del collisore.
Object get_contact_collider_object(contact_idx: int) const 🔗
Restituisce l'oggetto collisore.
Vector3 get_contact_collider_position(contact_idx: int) const 🔗
Restituisce la posizione del punto di contatto sul collisore nel sistema di coordinate globale.
int get_contact_collider_shape(contact_idx: int) const 🔗
Restituisce l'indice di forma del collisore.
Vector3 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗
Restituisce il vettore della velocità lineare nel punto di contatto del collisore.
int get_contact_count() const 🔗
Restituisce il numero di contatti che questo corpo ha con altri corpi.
Nota: Per impostazione predefinita, restituisce 0 a meno che i corpi non siano configurati per monitorare i contatti. Vedi RigidBody3D.contact_monitor.
Vector3 get_contact_impulse(contact_idx: int) const 🔗
Impulso creato dal contatto.
Vector3 get_contact_local_normal(contact_idx: int) const 🔗
Restituisce la normale locale nel punto di contatto.
Vector3 get_contact_local_position(contact_idx: int) const 🔗
Restituisce la posizione del punto di contatto sul corpo nel sistema di coordinate globale.
int get_contact_local_shape(contact_idx: int) const 🔗
Restituisce l'indice di forma locale della collisione.
Vector3 get_contact_local_velocity_at_position(contact_idx: int) const 🔗
Restituisce il vettore di velocità lineare al punto di contatto del corpo.
PhysicsDirectSpaceState3D get_space_state() 🔗
Restituisce lo stato attuale dello spazio, utile per le interrogazioni.
Vector3 get_velocity_at_local_position(local_position: Vector3) const 🔗
Returns the body's velocity at the given relative position.
local_position is the offset from the body origin in global coordinates.
void integrate_forces() 🔗
Aggiorna la velocità lineare e angolare del corpo applicando gravità e smorzamento per l'equivalente di un tick di fisica.
void set_constant_force(force: Vector3) 🔗
Imposta le forze posizionali costanti totali del corpo applicate durante ogni aggiornamento di fisica.
Vedi add_constant_force() e add_constant_central_force().
void set_constant_torque(torque: Vector3) 🔗
Imposta le forze rotazionali costanti totali del corpo applicate durante ogni aggiornamento di fisica.
Vedi add_constant_torque().