PathFollow3D

Успадковує: Node3D < Node < Object

Точка пробовідбірник для Path3D.

Опис

Ця вершина бере свою батьківщину Path3D, і повертає координати точки всередині неї, враховуючи відстань від першої вершини.

Це корисно для виготовлення інших вузлів слідувати шляху, не закодувавши шаблон руху. Для цього вузли повинні бути дітьми цього вузла. Нащадні вузли будуть переходити відповідно при встановленні progress в цій вершині.

Властивості

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

Методи

Transform3D

correct_posture(transform: Transform3D, rotation_mode: RotationMode) static


Переліки

enum RotationMode: 🔗

RotationMode ROTATION_NONE = 0

Забороняє обертання PathFollow3D.

RotationMode ROTATION_Y = 1

Дозволяє PathFollow3D обертатися лише по осі Y.

RotationMode ROTATION_XY = 2

Дозволяє PathFollow3D обертатися по осях X та Y.

RotationMode ROTATION_XYZ = 3

Дозволяє PathFollow3D обертатися навколо будь-якої осі.

RotationMode ROTATION_ORIENTED = 4

Використовує інформацію про вектор обертання вгору в Curve3D для забезпечення орієнтації. Цей режим обертання вимагає, щоб властивість Curve3D.up_vector_enabled Path3D мала значення true.


Описи властивостей

bool cubic_interp = true 🔗

  • void set_cubic_interpolation(value: bool)

  • bool get_cubic_interpolation()

Якщо true, позиція між двома кешетними точками переповнена кубічно, і лінійно іншим чином.

З точки зору Curve3D Path3D передаються до використання, для швидкого розрахунку. У пункті за запитом офсета розраховується міжпокриттям між двома суміжними пунктами кешування. Це може представити проблему, якщо крива робить різкі повороти, оскільки кеш-пам'ятки не можуть слідувати за крилом досить.

Існує два відповіді на цю проблему: або збільшити кількість кешованих точок і збільшити споживання пам'яті, або зробити кубічний інтерполяція між двома точками за вартістю (легково) повільних розрахунків.


float h_offset = 0.0 🔗

  • void set_h_offset(value: float)

  • float get_h_offset()

Зміщення вершини вздовж вигину.


bool loop = true 🔗

  • void set_loop(value: bool)

  • bool has_loop()

Якщо true, будь-який зсув за межі довжини шляху буде обгорнути, замість зупинки на кінцях. Використовуйте його для циклічних шляхів.


float progress = 0.0 🔗

  • void set_progress(value: float)

  • float get_progress()

Відстань від першої вершини вимірюється в 3D блоках вздовж шляху. Зміна цього значення встановлює позицію вершини до точки в межах шляху.


float progress_ratio = 0.0 🔗

  • void set_progress_ratio(value: float)

  • float get_progress_ratio()

Відстань від першої вершини, враховуючи 0,0 як першу вершину та 1,0 як останню. Це лише інший спосіб вираження прогресу в межах шляху, оскільки наданий прогрес внутрішньо множиться на довжину шляху.

Його можна встановити або отримати, лише якщо PathFollow3D є дочірнім елементом Path3D, який є частиною дерева сцени, і що цей Path3D має Curve3D ненульової довжини. Інакше спроба встановити це поле виведе помилку, а отримання цього поля поверне 0.0.


RotationMode rotation_mode = 3 🔗

Дозволяє або заборонити обертання на одну або більше осі, в залежності від RotationMode використовується константи.


bool tilt_enabled = true 🔗

  • void set_tilt_enabled(value: bool)

  • bool is_tilt_enabled()

Якщо true, властивість тенту Curve3D береться ефект.


bool use_model_front = false 🔗

  • void set_use_model_front(value: bool)

  • bool is_using_model_front()

Якщо true, вершина переміщається на шляху подорожі з орієнтацією осі +Z як вперед. Дивись ще Vector3. FORWARD і Vector3. MODEL_FRONT.


float v_offset = 0.0 🔗

  • void set_v_offset(value: float)

  • float get_v_offset()

Зміщення вузла перпендикулярно кривій.


Описи методів

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

Виправте transform. rotation_mode неявно вказує, як обчислюється положення (напрямок вперед, вгору та вбік).