PathFollow3D
Наследует: Node3D < Node < Object
Точечный сэмплер для Path3D.
Описание
Этот узел берет свой родительский Path3D и возвращает координаты точки внутри него, учитывая расстояние от первой вершины.
Это полезно для того, чтобы заставить другие узлы следовать по пути, без кодирования шаблона движения. Для этого узлы должны быть дочерними по отношению к этому узлу. Узлы-потомки затем будут двигаться соответственно при установке progress в этом узле.
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
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.
Описания свойств
Если true, положение между двумя кэшированными точками интерполируется кубически, а в противном случае — линейно.
Точки вдоль Curve3D Path3D предварительно вычисляются перед использованием для более быстрых вычислений. Затем точка с запрошенным смещением вычисляется путем интерполяции между двумя соседними кэшированными точками. Это может представлять проблему, если кривая делает резкие повороты, так как кэшированные точки могут недостаточно точно следовать кривой.
Есть два решения этой проблемы: либо увеличить количество кэшированных точек и увеличить потребление памяти, либо выполнить кубическую интерполяцию между двумя точками за счет (немного) более медленных вычислений.
Смещение узла вдоль кривой.
Если true, любое смещение за пределами длины пути будет зацикливаться, а не останавливаться на концах. Используйте его для циклических путей.
Расстояние от первой вершины, измеренное в 3D-единицах вдоль пути. Изменение этого значения устанавливает положение этого узла в точке внутри пути.
Расстояние от первой вершины, считая 0.0 первой вершиной, а 1.0 последней. Это просто другой способ выражения прогресса в пределах пути, поскольку предоставленный прогресс умножается внутренне на длину пути.
Его можно установить или получить, только если PathFollow3D является дочерним элементом Path3D, который является частью дерева сцены, и что этот Path3D имеет Curve3D с ненулевой длиной. В противном случае попытка установить это поле выведет ошибку, а получение этого поля вернет 0.0.
RotationMode rotation_mode = 3 🔗
void set_rotation_mode(value: RotationMode)
RotationMode get_rotation_mode()
Разрешает или запрещает вращение по одной или нескольким осям в зависимости от используемых констант RotationMode.
Если true, свойство наклона Curve3D вступает в силу.
bool use_model_front = false 🔗
Если true, узел перемещается по траектории перемещения с ориентацией оси +Z вперед. См. также Vector3.FORWARD и Vector3.MODEL_FRONT.
Смещение узла перпендикулярно кривой.
Описания метода
Transform3D correct_posture(transform: Transform3D, rotation_mode: RotationMode) static 🔗
Исправьте transform. rotation_mode неявно указывает, как рассчитывается поза (вперед, вверх и вбок).