PhysicsTestMotionParameters3D

Hereda: RefCounted < Object

Proporciona parámetros para PhysicsServer3D.body_test_motion().

Descripción

Cambiando varias propiedades de este objeto, como el movimiento, puedes configurar los parámetros para PhysicsServer3D.body_test_motion().

Propiedades

bool

collide_separation_ray

false

Array[RID]

exclude_bodies

[]

Array[int]

exclude_objects

[]

Transform3D

from

Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)

float

margin

0.001

int

max_collisions

1

Vector3

motion

Vector3(0, 0, 0)

bool

recovery_as_collision

false


Descripciones de Propiedades

bool collide_separation_ray = false 🔗

  • void set_collide_separation_ray_enabled(value: bool)

  • bool is_collide_separation_ray_enabled()

Si se establece en true, las formas de tipo PhysicsServer3D.SHAPE_SEPARATION_RAY se utilizan para detectar colisiones y pueden detener el movimiento. Puede ser útil al ajustarse al suelo.

Si se establece en false, las formas de tipo PhysicsServer3D.SHAPE_SEPARATION_RAY solo se utilizan para la separación cuando se superponen con otros cuerpos. Ese es el principal uso para las formas de rayo de separación.


Array[RID] exclude_bodies = [] 🔗

Array opcional de RID del cuerpo a excluir de la colisión. Utiliza CollisionObject3D.get_rid() para obtener el RID asociado con un nodo derivado de CollisionObject3D.


Array[int] exclude_objects = [] 🔗

Array opcional de los ID de instancia únicas de objetos para excluir de la colisión. Véase Object.get_instance_id().


Transform3D from = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) 🔗

Transformación en el espacio global donde debería comenzar el movimiento. Normalmente se establece en Node3D.global_transform para la transformación del cuerpo actual.


float margin = 0.001 🔗

  • void set_margin(value: float)

  • float get_margin()

Aumenta el tamaño de las formas involucradas en la detección de colisiones.


int max_collisions = 1 🔗

  • void set_max_collisions(value: int)

  • int get_max_collisions()

Número máximo de colisiones devueltas, entre 1 y 32. Siempre devuelve las colisiones detectadas más profundas.


Vector3 motion = Vector3(0, 0, 0) 🔗

Vector de movimiento para definir la longitud y la dirección del movimiento a probar.


bool recovery_as_collision = false 🔗

  • void set_recovery_as_collision_enabled(value: bool)

  • bool is_recovery_as_collision_enabled()

Si se establece en true, cualquier despenetración de la fase de recuperación se notifica como una colisión; esto lo utiliza, por ejemplo, CharacterBody3D para mejorar la detección del suelo durante el ajuste al suelo.

Si se establece en false, solo se informan las colisiones resultantes del movimiento, que generalmente es el comportamiento deseado.