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

Vector3

angular_velocity

Vector3

center_of_mass

Vector3

center_of_mass_local

int

collision_layer

int

collision_mask

Vector3

inverse_inertia

Basis

inverse_inertia_tensor

float

inverse_mass

Vector3

linear_velocity

Basis

principal_inertia_axes

bool

sleeping

float

step

float

total_angular_damp

Vector3

total_gravity

float

total_linear_damp

Transform3D

transform

Métodos

void

add_constant_central_force(force: Vector3 = Vector3(0, 0, 0))

void

add_constant_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0))

void

add_constant_torque(torque: Vector3)

void

apply_central_force(force: Vector3 = Vector3(0, 0, 0))

void

apply_central_impulse(impulse: Vector3 = Vector3(0, 0, 0))

void

apply_force(force: Vector3, position: Vector3 = Vector3(0, 0, 0))

void

apply_impulse(impulse: Vector3, position: Vector3 = Vector3(0, 0, 0))

void

apply_torque(torque: Vector3)

void

apply_torque_impulse(impulse: Vector3)

Vector3

get_constant_force() const

Vector3

get_constant_torque() const

RID

get_contact_collider(contact_idx: int) const

int

get_contact_collider_id(contact_idx: int) const

Object

get_contact_collider_object(contact_idx: int) const

Vector3

get_contact_collider_position(contact_idx: int) const

int

get_contact_collider_shape(contact_idx: int) const

Vector3

get_contact_collider_velocity_at_position(contact_idx: int) const

int

get_contact_count() const

Vector3

get_contact_impulse(contact_idx: int) const

Vector3

get_contact_local_normal(contact_idx: int) const

Vector3

get_contact_local_position(contact_idx: int) const

int

get_contact_local_shape(contact_idx: int) const

Vector3

get_contact_local_velocity_at_position(contact_idx: int) const

PhysicsDirectSpaceState3D

get_space_state()

Vector3

get_velocity_at_local_position(local_position: Vector3) const

void

integrate_forces()

void

set_constant_force(force: Vector3)

void

set_constant_torque(torque: Vector3)


Descripciones de Propiedades

Vector3 angular_velocity 🔗

  • void set_angular_velocity(value: Vector3)

  • Vector3 get_angular_velocity()

La velocidad de rotación del cuerpo en radianes por segundo.


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


int collision_layer 🔗

  • void set_collision_layer(value: int)

  • int get_collision_layer()

La capa de colisión del cuerpo.


int collision_mask 🔗

  • void set_collision_mask(value: int)

  • int get_collision_mask()

La máscara de colisión del cuerpo.


Vector3 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 inverse_mass 🔗

  • float get_inverse_mass()

El inverso de la masa del cuerpo.


Vector3 linear_velocity 🔗

  • void set_linear_velocity(value: Vector3)

  • Vector3 get_linear_velocity()

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!


bool sleeping 🔗

  • void set_sleep_state(value: bool)

  • bool is_sleeping()

Si es true, este cuerpo está actualmente durmiendo (no está activo).


float step 🔗

El paso temporal (delta) utilizado para la simulación.


float total_angular_damp 🔗

  • float get_total_angular_damp()

La velocidad a la que el cuerpo deja de girar, si no hay otras fuerzas que lo muevan.


Vector3 total_gravity 🔗

El vector de gravedad total que se aplica actualmente a este cuerpo.


float total_linear_damp 🔗

  • 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 🔗

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