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.

PathFollow3D

Eredita: Node3D < Node < Object

Campionatore di punti per un Path3D.

Descrizione

Questo nodo prende il suo Path3D genitore e restituisce le coordinate di un punto al suo interno, data una distanza dal primo vertice.

È utile per far sì che altri nodi seguano un percorso, senza scrivere codice per lo schema di movimento. Per questo, i nodi devono essere figli di questo nodo. I nodi discendenti si muoveranno di conseguenza quando si imposta progress in questo nodo.

Proprietà

bool

cubic_interp

true

float

h_offset

0.0

bool

loop

true

float

progress

0.0

float

progress_ratio

0.0

RotationMode

rotation_mode

3

bool

tilt_enabled

true

bool

use_model_front

false

float

v_offset

0.0

Metodi

Transform3D

correct_posture(transform: Transform3D, rotation_mode: RotationMode) static


Enumerazioni

enum RotationMode: 🔗

RotationMode ROTATION_NONE = 0

Impedisce la rotazione del PathFollow3D.

RotationMode ROTATION_Y = 1

Consente al PathFollow3D di ruotare solo lungo l'asse Y.

RotationMode ROTATION_XY = 2

Consente al PathFollow3D di ruotare sia lungo l'asse X, sia lungo l'asse Y.

RotationMode ROTATION_XYZ = 3

Consente a PathFollow3D di ruotare lungo ogni asse.

RotationMode ROTATION_ORIENTED = 4

Utilizza le informazioni del vettore alto in una Curve3D per imporre l'orientamento. Questa modalità di rotazione richiede che la proprietà Curve3D.up_vector_enabled di Path3D sia impostata su true.


Descrizioni delle proprietà

bool cubic_interp = true 🔗

  • void set_cubic_interpolation(value: bool)

  • bool get_cubic_interpolation()

Se true, la posizione tra due punti memorizzati nella cache è interpolata in modo cubico, altrimenti linearmente.

I punti lungo la Curve3D del Path3D sono precalcolati prima dell'uso, per calcoli più rapidi. Il punto all'offset richiesto è quindi calcolato interpolando tra due punti adiacenti memorizzati nella cache. Ciò potrebbe rappresentare un problema se la curva effettua svolte brusche, poiché i punti memorizzati nella cache potrebbero non seguire la curva vicino abbastanza.

Ci sono due risposte a questo problema: aumenta il numero di punti memorizzati nella cache, aumentando il consumo di memoria, oppure effettua un'interpolazione cubica tra due punti, a costo di calcoli (leggermente) più lenti.


float h_offset = 0.0 🔗

  • void set_h_offset(value: float)

  • float get_h_offset()

L'offset del nodo lungo la curva.


bool loop = true 🔗

  • void set_loop(value: bool)

  • bool has_loop()

Se true, qualsiasi offset al di fuori della lunghezza del percorso sarà avvolto, invece di fermarsi alle estremità. Usalo per percorsi ciclici.


float progress = 0.0 🔗

  • void set_progress(value: float)

  • float get_progress()

La distanza dal primo vertice, misurata in unità 3D lungo il percorso. La modifica di questo valore imposta la posizione di questo nodo su un punto all'interno del percorso.


float progress_ratio = 0.0 🔗

  • void set_progress_ratio(value: float)

  • float get_progress_ratio()

La distanza dal primo vertice, considerando 0,0 come il primo vertice e 1,0 come l'ultimo. Questo è solo un altro modo di esprimere il progresso all'interno del percorso, poiché il progresso fornito è moltiplicato internamente per la lunghezza del percorso.

Può essere impostato o ottenuto solo se il PathFollow3D è il figlio di un Path3D che fa parte dell'albero di scene e che questo Path3D ha una Curve3D con una lunghezza diversa da zero. Altrimenti, tentando di impostare questo campo sarà stampato un errore e ottenendo questo campo sarà restituito 0.0.


RotationMode rotation_mode = 3 🔗

Consente o impedisce la rotazione su uno o più assi, a seconda delle costanti di RotationMode utilizzate.


bool tilt_enabled = true 🔗

  • void set_tilt_enabled(value: bool)

  • bool is_tilt_enabled()

Se true, la proprietà di inclinazione di Curve3D ha effetto.


bool use_model_front = false 🔗

  • void set_use_model_front(value: bool)

  • bool is_using_model_front()

Se true, il nodo si sposta sul percorso di viaggio orientando l'asse +Z in avanti. Vedi anche Vector3.FORWARD e Vector3.MODEL_FRONT.


float v_offset = 0.0 🔗

  • void set_v_offset(value: float)

  • float get_v_offset()

L'offset del nodo perpendicolare alla curva.


Descrizioni dei metodi

Transform3D correct_posture(transform: Transform3D, rotation_mode: RotationMode) static 🔗

Corregge la trasformazione transform. rotation_mode specifica implicitamente come viene calcolata la postura (direzione anteriore, superiore e laterale).