RouteMove

继承: Item3D < Item < Object

Route的点采样器。

描述

该节点采用其父节点Route,并返回其中一个点的坐标,给定与第一个顶点的距离。

这对于让其他节点遵循一条路径很有用,而无需编码移动模式。为此,节点必须是该节点的子节点。然后,在该节点中设置progress时,后代节点将相应地移动。

属性

方法

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中的向上向量信息来强制定向。此旋转模式需要将RouteCurve3D.up_vector_enabled属性设置为true


属性说明

bool cubic_interp = true 🔗

  • void set_cubic_interpolation(value: bool)

  • bool get_cubic_interpolation()

如果true,则两个缓存点之间的位置以立方体方式插值,否则以线性方式插值。

RouteCurve3D沿线的点在使用前预先计算,以便更快地计算。然后计算请求偏移处的点,在两个相邻的缓存点之间进行插值。如果曲线急转弯,这可能会出现问题,因为缓存点可能跟不上曲线。

这个问题有两个答案:要么增加缓存点的数量并增加内存消耗,要么在两个点之间进行三次插值,代价是(稍微)较慢的计算。


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作为最后一个顶点。这只是表达路径内进度的另一种方式,因为提供的进度在内部乘以路径的长度。

只有当RouteMove是场景树的一部分Route的子级,并且此Route具有非零长度的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.FORWARDVector3.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 🔗

修正transformrotation_mode隐式指定如何计算姿势(向前、向上和侧向)。