PhysicsTestMotionParameters3D

Наследует: RefCounted < Object

Предоставляет параметры для PhysicsServer3D.body_test_motion().

Описание

Изменяя различные свойства этого объекта, такие как движение, вы можете настроить параметры для PhysicsServer3D.body_test_motion().

Свойства

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


Описания свойств

bool collide_separation_ray = false 🔗

  • void set_collide_separation_ray_enabled(value: bool)

  • bool is_collide_separation_ray_enabled()

Если установлено значение true, формы типа PhysicsServer3D.SHAPE_SEPARATION_RAY используются для обнаружения столкновений и могут остановить движение. Может быть полезно при привязке к земле.

Если установлено значение false, формы типа PhysicsServer3D.SHAPE_SEPARATION_RAY используются только для разделения при перекрытии с другими телами. Это основное применение форм лучей разделения.


Array[RID] exclude_bodies = [] 🔗

Необязательный массив тела RID для исключения из столкновения. Используйте CollisionObject3D.get_rid(), чтобы получить RID, связанный с узлом, производным от CollisionObject3D.


Array[int] exclude_objects = [] 🔗

Необязательный массив уникальных идентификаторов экземпляров объектов для исключения из коллизии. См. Object.get_instance_id().


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

Преобразование в глобальном пространстве, где должно начаться движение. Обычно устанавливается на Node3D.global_transform для преобразования текущего тела.


float margin = 0.001 🔗

  • void set_margin(value: float)

  • float get_margin()

Увеличивает размер фигур, участвующих в обнаружении столкновений.


int max_collisions = 1 🔗

  • void set_max_collisions(value: int)

  • int get_max_collisions()

Максимальное количество возвращаемых столкновений, между 1 и 32. Всегда возвращает самые глубокие обнаруженные столкновения.


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

Вектор движения для определения длины и направления проверяемого движения.


bool recovery_as_collision = false 🔗

  • void set_recovery_as_collision_enabled(value: bool)

  • bool is_recovery_as_collision_enabled()

Если установлено значение true, любое отклонение от фазы восстановления сообщается как столкновение; это используется, например, CharacterBody3D для улучшения обнаружения пола во время привязки к полу.

Если установлено значение false, сообщаются только столкновения, возникающие в результате движения, что обычно является желаемым поведением.