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.

PhysicsTestMotionParameters3D

Eredita: RefCounted < Object

Fornisce parametri per PhysicsServer3D.body_test_motion().

Descrizione

Modificando varie proprietà di questo oggetto, come il movimento, è possibile configurare i parametri per PhysicsServer3D.body_test_motion().

Proprietà

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


Descrizioni delle proprietà

bool collide_separation_ray = false 🔗

  • void set_collide_separation_ray_enabled(value: bool)

  • bool is_collide_separation_ray_enabled()

Se impostato su true, le forme di tipo PhysicsServer3D.SHAPE_SEPARATION_RAY sono utilizzate per rilevare le collisioni e possono arrestare il movimento. Possono essere utili quando ci si aggancia al suolo.

Se impostato su false, le forme di tipo PhysicsServer3D.SHAPE_SEPARATION_RAY sono utilizzate solo per la separazione quando ci si sovrappone ad altri corpi. Questo è l'uso principale per le forme di raggio di separazione.


Array[RID] exclude_bodies = [] 🔗

Array facoltativo di RID di corpi da escludere dalle collisioni. Utilizza CollisionObject3D.get_rid() per ottenere il RID associato a un nodo derivato da CollisionObject3D.


Array[int] exclude_objects = [] 🔗

Array facoltativo di ID univoci di istanze di oggetto da escludere dalla collisione. Vedi Object.get_instance_id().


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

Trasformazione nello spazio globale dove dovrebbe iniziare il movimento. Solitamente impostato su Node3D.global_transform per la trasformazione del corpo attuale.


float margin = 0.001 🔗

  • void set_margin(value: float)

  • float get_margin()

Aumenta la dimensione delle forme coinvolte nel rilevamento delle collisioni.


int max_collisions = 1 🔗

  • void set_max_collisions(value: int)

  • int get_max_collisions()

Numero massimo di collisioni restituite, compreso tra 1 e 32. Restituisce sempre le collisioni più profonde rilevate.


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

Vettore di movimento per definire la lunghezza e la direzione del movimento da testare.


bool recovery_as_collision = false 🔗

  • void set_recovery_as_collision_enabled(value: bool)

  • bool is_recovery_as_collision_enabled()

Se impostato su true, qualsiasi penetrazione dalla fase di recupero è segnalata come una collisione; questo è utilizzato ad esempio da CharacterBody3D per migliorare il rilevamento del pavimento durante l'agganciamento al pavimento.

Se impostato su false, sono segnalate solo le collisioni risultanti dal movimento, che è generalmente il comportamento desiderato.