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.
Checking the stable version of the documentation...
PathFollow3D¶
Path3D 的点采样器。
描述¶
这个节点接受它的父节点 Path3D 并返回其中一个点的坐标,需要给定到第一个顶点的距离。
在不编码移动图案的情况下,它可以使其他节点遵循一条路径。为此,节点必须是该节点的子节点。在该节点中设置 progress 后,后代节点会随之移动。
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
correct_posture ( Transform3D transform, RotationMode rotation_mode ) 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 中的向上向量信息来强制定向。该旋转模式需要将 Path3D 的 Curve3D.up_vector_enabled 属性设置为 true
。
属性说明¶
bool cubic_interp = true
如果为 true
,则两个缓存点之间的位置将被三次插值,否则将被线性插值。
沿着 Path3D 的 Curve3D 的点在使用前已被预先计算,以便更快地计算。然后在两个相邻缓存点之间,插值计算请求的偏移处的点。如果曲线急转弯,这可能会出现问题,因为缓存的点可能没有足够紧密地跟随曲线。
这个问题有两个答案:要么增加缓存点的数量,并增加内存消耗;要么在两个点之间进行三次插值,代价是(稍微)降低计算速度。
float h_offset = 0.0
节点沿曲线的偏移量。
bool loop = true
如果为 true
,路径长度以外的任何偏移都将环绕,而不是在结束时停止。对于循环路径使用它。
float progress = 0.0
到第一个顶点的距离,单位为沿路径经过的 3D 单位数。改变这个值会将这个节点的位置设置为路径上的某个点。
float progress_ratio = 0.0
到第一个顶点的距离,将 0.0 作为第一个顶点,1.0 作为最后一个顶点。这只是表示路径内偏移量的另一种方式,提供的偏移量在内部会与路径的长度相乘。
RotationMode rotation_mode = 3
void set_rotation_mode ( RotationMode value )
RotationMode get_rotation_mode ( )
允许或禁止在一个或多个轴上旋转,这取决于使用的 RotationMode 常量。
bool tilt_enabled = true
如果为 true
,则 Curve3D 的倾斜属性生效。
bool use_model_front = false
如果为 true
,则沿路径移动的节点会将 +Z 轴作为前方向进行朝向。另见 Vector3.FORWARD 和 Vector3.MODEL_FRONT。
float v_offset = 0.0
节点垂直于曲线的偏移量。
方法说明¶
Transform3D correct_posture ( Transform3D transform, RotationMode rotation_mode ) static
校正 transform
。rotation_mode
隐式指定如何计算姿势(向前、向上和侧向)。