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
Hérite de : Object
Hérité par : PhysicsDirectBodyState3DExtension
Fournit un accès direct à un corps physique dans le PhysicsServer3D.
Description
Fournit un accès direct à un corps physique dans le PhysicsServer3D, permettant des changements sécurisés aux propriétés physiques. Cet objet est passé par le callback d'état direct de RigidBody3D, et est pensé pour changer l'état direct de ce corps. Voir RigidBody3D._integrate_forces().
Tutoriels
Propriétés
Méthodes
Descriptions des propriétés
La vitesse de rotation du corps en radians par seconde.
Vector3 get_center_of_mass()
Le centre de masse du corps relatif au centre du corps dans le système de coordonnées global.
Vector3 center_of_mass_local 🔗
Vector3 get_center_of_mass_local()
La position du centre de masse du corps dans le système de coordonnées local du corps.
La couche de collision du corps.
Le masque de collision du corps.
Vector3 get_inverse_inertia()
L'inverse de l'inertie du corps.
Basis inverse_inertia_tensor 🔗
Basis get_inverse_inertia_tensor()
L'inverse du tenseur d'inertie du corps.
float get_inverse_mass()
L'inverse de la masse du corps.
La vitesse linéaire du corps en unités par secondes.
Basis principal_inertia_axes 🔗
Basis get_principal_inertia_axes()
There is currently no description for this property. Please help us by contributing one!
Si true, le corps est actuellement au repos (inactif).
float get_step()
L'étape de temps (delta) utilisé pour la simulation.
float get_total_angular_damp()
Le vitesse à laquelle le corps cesse de tourner, s'il n'y a pas d'autres forces qui le déplacent.
Vector3 get_total_gravity()
Le vecteur total de gravité actuellement appliqué à ce corps.
float get_total_linear_damp()
Le vitesse à laquelle le corps cesse de se déplacer, s'il n'y a pas d'autres forces qui le déplacent.
Transform3D transform 🔗
void set_transform(value: Transform3D)
Transform3D get_transform()
La matrice de transformation du corps.
Descriptions des méthodes
void add_constant_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Ajoute une force directionnelle constante n'affectant pas la rotation, qui continue d'être appliquée au cours du temps jusqu'à ce qu'elle soit enlevée avec constant_force = Vector3(0, 0, 0).
Ceci est équivalent à utiliser add_constant_force() au centre de masse du corps.
void add_constant_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Ajoute une force positionnée constante au corps qui continue d'être appliquée au cours du temps jusqu'à ce qu'elle soit nettoyée avec constant_force = Vector3(0, 0, 0).
position est le décalage depuis l'origine du corps dans les coordonnées globales.
void add_constant_torque(torque: Vector3) 🔗
Ajoute une force de rotation constante n'affectant pas la position, qui continue d'être appliquée au cours du temps jusqu'à ce qu'elle soit enlevée avec constant_torque = Vector3(0, 0, 0).
void apply_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Applique une force directionnelle n'affectant pas la rotation. Une force est dépendante du temps et destinée à être appliquée chaque mise à jour physique.
Ceci est équivalent à utiliser apply_force() au centre de masse du corps.
void apply_central_impulse(impulse: Vector3 = Vector3(0, 0, 0)) 🔗
Applique une impulsion directionnelle n'affectant pas la rotation.
Une impulsion est indépendante du temps ! Appliquer une impulsion à chaque trame entraînerait une force dépendante du taux de rafraîchissement. Pour cette raison, elle ne devrait être utilisée que pour simuler des impacts ponctuels (utilisez les fonctions "_force" sinon).
Ceci est équivalent à utiliser apply_impulse() au centre de masse du corps.
void apply_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Applique une force positionnée au corps. Une force est dépendante du temps et destinée à être appliquée à chaque mise à jour physique.
position est le décalage depuis l'origine du corps dans les coordonnées globales.
void apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Applique une impulsion positionnée au corps.
Une impulsion est indépendante du temps ! Appliquer une impulsion à chaque trame entraînerait une force dépendante du taux de rafraîchissement. Pour cette raison, elle ne devrait être utilisée que pour simuler des impacts ponctuels (utilisez les fonctions "_force" sinon).
position est le décalage depuis l'origine du corps dans les coordonnées globales.
void apply_torque(torque: Vector3) 🔗
Applique une force de rotation sans affecter la position. Une force est dépendante du temps et destinée à être appliquée à chaque mise à jour physique.
Note : L'inverse de l'inertie (inverse_inertia) est nécessaire pour que cela fonctionne. Pour avoir de l'inverse de l'inertie (inverse_inertia), un CollisionShape3D actif doit être un enfant du nœud, ou vous pouvez définir manuellement inverse_inertia.
void apply_torque_impulse(impulse: Vector3) 🔗
Applique une impulsion de rotation au corps sans affecter la position.
Une impulsion est indépendante du temps ! Appliquer une impulsion à chaque trame entraînerait une force dépendante du taux de rafraîchissement. Pour cette raison, elle ne devrait être utilisée que pour simuler des impacts ponctuels (utilisez les fonctions "_force" sinon).
Note : L'inverse de l'inertie (inverse_inertia) est nécessaire pour que cela fonctionne. Pour avoir de l'inverse de l'inertie (inverse_inertia), un CollisionShape3D actif doit être un enfant du nœud, ou vous pouvez définir manuellement inverse_inertia.
Vector3 get_constant_force() const 🔗
Renvoie les forces positionnelles constantes totales du corps appliquées lors de chaque mise à jour physique.
Voir add_constant_force() et add_constant_central_force().
Vector3 get_constant_torque() const 🔗
Renvoie les forces de rotation constantes totales du corps appliquées lors de chaque mise à jour physique.
Voir add_constant_torque().
RID get_contact_collider(contact_idx: int) const 🔗
Renvoie le RID du collisionneur.
int get_contact_collider_id(contact_idx: int) const 🔗
Renvoie l’id de l’objet du collisionneur.
Object get_contact_collider_object(contact_idx: int) const 🔗
Renvoie l'objet collisionneur.
Vector3 get_contact_collider_position(contact_idx: int) const 🔗
Renvoie la position du point de contact sur le collideur dans le système de coordonnées global.
int get_contact_collider_shape(contact_idx: int) const 🔗
Renvoie l'index de forme du collisionneur.
Vector3 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗
Renvoie le vecteur de vélocité linéaire au point de contact à la collision.
int get_contact_count() const 🔗
Renvoie le nombre de contacts que ce corps a avec d'autres corps.
Note : Par défaut, cela renvoie 0 sauf si les corps sont configurés pour surveiller les contacts. Voir RigidBody3D.contact_monitor.
Vector3 get_contact_impulse(contact_idx: int) const 🔗
L'impulsion créée par le contact.
Vector3 get_contact_local_normal(contact_idx: int) const 🔗
Renvoie la normale locale au point de contact.
Vector3 get_contact_local_position(contact_idx: int) const 🔗
Renvoie la position du point de contact sur le corps dans le système de coordonnées global.
int get_contact_local_shape(contact_idx: int) const 🔗
Renvoie l'index de la forme locale de la collision.
Vector3 get_contact_local_velocity_at_position(contact_idx: int) const 🔗
Renvoie le vecteur de vélocité linéaire au point de contact du corps.
PhysicsDirectSpaceState3D get_space_state() 🔗
Renvoie l'état actuel de l'espace, utile pour les requêtes.
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() 🔗
Met à jour la vitesse linéaire et angulaire du corps en appliquant la gravité et l'amortissement pour l'équivalent d'un tic de calcul de la physique.
void set_constant_force(force: Vector3) 🔗
Définit les forces positionnelles constantes totales du corps appliquées lors de chaque mise à jour physique.
Voir add_constant_force() et add_constant_central_force().
void set_constant_torque(torque: Vector3) 🔗
Définit les forces de rotation constantes totales du corps appliquées lors de chaque mise à jour physique.
Voir add_constant_torque().