PhysicsDirectBodyState3D
Hereda: Object
Heredado por: PhysicsDirectBodyState3DExtension
Proporciona acceso directo a un cuerpo físico en el PhysicsServer3D.
Descripción
Proporciona acceso directo a un cuerpo físico en el PhysicsServer3D, permitiendo cambios seguros en las propiedades físicas. Este objeto se pasa a través de la callback de estado directo de RigidBody3D, y está destinado a cambiar el estado directo de ese cuerpo. Véase RigidBody3D._integrate_forces().
Tutoriales
Propiedades
Métodos
Descripciones de Propiedades
La velocidad de rotación del cuerpo en radianes por segundo.
Vector3 get_center_of_mass()
La posición del centro de masa del cuerpo relativa al centro del cuerpo en el sistema de coordenadas global.
Vector3 center_of_mass_local 🔗
Vector3 get_center_of_mass_local()
Posición del centro de masa del cuerpo en el sistema de coordenadas local del cuerpo.
La capa de colisión del cuerpo.
La máscara de colisión del cuerpo.
Vector3 get_inverse_inertia()
El inverso de la inercia del cuerpo.
Basis inverse_inertia_tensor 🔗
Basis get_inverse_inertia_tensor()
El inverso del tensor de inercia del cuerpo.
float get_inverse_mass()
El inverso de la masa del cuerpo.
La velocidad lineal del cuerpo en unidades por segundo.
Basis principal_inertia_axes 🔗
Basis get_principal_inertia_axes()
There is currently no description for this property. Please help us by contributing one!
Si es true, este cuerpo está actualmente durmiendo (no está activo).
float get_step()
El paso temporal (delta) utilizado para la simulación.
float get_total_angular_damp()
La velocidad a la que el cuerpo deja de girar, si no hay otras fuerzas que lo muevan.
Vector3 get_total_gravity()
El vector de gravedad total que se aplica actualmente a este cuerpo.
float get_total_linear_damp()
La velocidad a la que el cuerpo deja de moverse, si no hay otras fuerzas que lo muevan.
Transform3D transform 🔗
void set_transform(value: Transform3D)
Transform3D get_transform()
La matriz de transformación del cuerpo.
Descripciones de Métodos
void add_constant_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Añade una fuerza direccional constante sin afectar la rotación que se aplica continuamente hasta que se elimina con constant_force = Vector3(0, 0, 0).
Esto es equivalente a usar add_constant_force() en el centro de masa del cuerpo.
void add_constant_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Añade una fuerza posicionada constante al cuerpo que se aplica continuamente hasta que se elimina con constant_force = Vector3(0, 0, 0).
position es el desplazamiento desde el origen del cuerpo en coordenadas globales.
void add_constant_torque(torque: Vector3) 🔗
Añade una fuerza rotacional constante sin afectar la posición, que se aplica continuamente hasta que se elimina con constant_torque = Vector3(0, 0, 0).
void apply_central_force(force: Vector3 = Vector3(0, 0, 0)) 🔗
Aplica una fuerza direccional sin afectar la rotación. Una fuerza depende del tiempo y está pensada para ser aplicada en cada actualización de la física.
Esto es equivalente a usar apply_force() en el centro de masa del cuerpo.
void apply_central_impulse(impulse: Vector3 = Vector3(0, 0, 0)) 🔗
Aplica un impulso direccional sin afectar la rotación.
¡Un impulso es independiente del tiempo! Aplicar un impulso en cada fotograma resultaría en una fuerza dependiente de la velocidad de fotogramas. Por esta razón, solo debe usarse al simular impactos únicos (usa las funciones "_force" en su lugar).
Esto es equivalente a usar apply_impulse() en el centro de masa del cuerpo.
void apply_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Aplica una fuerza posicionada al cuerpo. Una fuerza depende del tiempo y está pensada para ser aplicada en cada actualización de la física.
position es el desplazamiento desde el origen del cuerpo en coordenadas globales.
void apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0)) 🔗
Aplica un impulso posicionado al cuerpo.
¡Un impulso es independiente del tiempo! Aplicar un impulso en cada fotograma resultaría en una fuerza dependiente de la velocidad de fotogramas. Por esta razón, solo debe usarse al simular impactos únicos (usa las funciones "_force" en su lugar).
position es el desplazamiento desde el origen del cuerpo en coordenadas globales.
void apply_torque(torque: Vector3) 🔗
Aplica una fuerza rotacional sin afectar la posición. Una fuerza depende del tiempo y está destinada a ser aplicada en cada actualización de la física.
Nota: Se requiere inverse_inertia para que esto funcione. Para tener inverse_inertia, una CollisionShape3D activa debe ser hija del nodo, o puedes establecer manualmente inverse_inertia.
void apply_torque_impulse(impulse: Vector3) 🔗
Applies a rotational impulse to the body without affecting the position.
An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise).
Note: inverse_inertia is required for this to work. To have inverse_inertia, an active CollisionShape3D must be a child of the node, or you can manually set inverse_inertia.
Vector3 get_constant_force() const 🔗
Devuelve las fuerzas posicionales constantes totales del cuerpo aplicadas durante cada actualización de la física.
Véase add_constant_force() y add_constant_central_force().
Vector3 get_constant_torque() const 🔗
Devuelve las fuerzas rotacionales constantes totales del cuerpo aplicadas durante cada actualización de la física.
Véase add_constant_torque().
RID get_contact_collider(contact_idx: int) const 🔗
Devuelve el RID del colisionador.
int get_contact_collider_id(contact_idx: int) const 🔗
Devuelve la identificación del objeto del colisionador.
Object get_contact_collider_object(contact_idx: int) const 🔗
Devuelve el objeto del colisionador.
Vector3 get_contact_collider_position(contact_idx: int) const 🔗
Devuelve la posición del punto de contacto en el colisionador en el sistema de coordenadas global.
int get_contact_collider_shape(contact_idx: int) const 🔗
Devuelve el índice de forma del colisionador.
Vector3 get_contact_collider_velocity_at_position(contact_idx: int) const 🔗
Devuelve el vector de velocidad lineal en el punto de contacto del colisionador.
int get_contact_count() const 🔗
Devuelve el número de contactos que este cuerpo tiene con otros cuerpos.
Nota: Por defecto, esto devuelve 0 a menos que los cuerpos estén configurados para monitorear los contactos. Véase RigidBody3D.contact_monitor.
Vector3 get_contact_impulse(contact_idx: int) const 🔗
Impulso creado por el contacto.
Vector3 get_contact_local_normal(contact_idx: int) const 🔗
Devuelve la normalidad local en el punto de contacto.
Vector3 get_contact_local_position(contact_idx: int) const 🔗
Devuelve la posición del punto de contacto en el cuerpo en el sistema de coordenadas global.
int get_contact_local_shape(contact_idx: int) const 🔗
Devuelve el índice de forma local de la colisión.
Vector3 get_contact_local_velocity_at_position(contact_idx: int) const 🔗
Devuelve el vector de velocidad lineal en el punto de contacto del cuerpo.
PhysicsDirectSpaceState3D get_space_state() 🔗
Devuelve el estado actual del espacio, útil para las consultas.
Vector3 get_velocity_at_local_position(local_position: Vector3) const 🔗
Devuelve la velocidad del cuerpo en la posición relativa dada, incluyendo la traslación y la rotación.
void integrate_forces() 🔗
Updates the body's linear and angular velocity by applying gravity and damping for the equivalent of one physics tick.
void set_constant_force(force: Vector3) 🔗
Establece las fuerzas posicionales constantes totales del cuerpo aplicadas durante cada actualización de la física.
Véase add_constant_force() y add_constant_central_force().
void set_constant_torque(torque: Vector3) 🔗
Establece las fuerzas rotacionales constantes totales del cuerpo aplicadas durante cada actualización de la física.
Véase add_constant_torque().