Vector3

用于 3D 数学的向量。

描述

可用于表示 3D 空间中的位置或任何其他数值对的 3 元素结构。

注意: 在布尔上下文中,如果 Vector3 等于 Vector3(0, 0, 0),将评估为 false。否则, Vector3 将始终评估为 true

教程

属性

float

x

0.0

float

y

0.0

float

z

0.0

方法

Vector3

Vector3 ( float x, float y, float z )

Vector3

abs ( )

float

angle_to ( Vector3 to )

Vector3

bounce ( Vector3 n )

Vector3

ceil ( )

Vector3

cross ( Vector3 b )

Vector3

cubic_interpolate ( Vector3 b, Vector3 pre_a, Vector3 post_b, float weight )

Vector3

direction_to ( Vector3 b )

float

distance_squared_to ( Vector3 b )

float

distance_to ( Vector3 b )

float

dot ( Vector3 b )

Vector3

floor ( )

Vector3

inverse ( )

bool

is_equal_approx ( Vector3 v )

bool

is_normalized ( )

float

length ( )

float

length_squared ( )

Vector3

limit_length ( float length=1.0 )

Vector3

linear_interpolate ( Vector3 to, float weight )

int

max_axis ( )

int

min_axis ( )

Vector3

move_toward ( Vector3 to, float delta )

Vector3

normalized ( )

Basis

outer ( Vector3 b )

Vector3

posmod ( float mod )

Vector3

posmodv ( Vector3 modv )

Vector3

project ( Vector3 b )

Vector3

reflect ( Vector3 n )

Vector3

rotated ( Vector3 axis, float phi )

Vector3

round ( )

Vector3

sign ( )

float

signed_angle_to ( Vector3 to, Vector3 axis )

Vector3

slerp ( Vector3 to, float weight )

Vector3

slide ( Vector3 n )

Vector3

snapped ( Vector3 by )

Basis

to_diagonal_matrix ( )

常量

  • AXIS_X = 0 —- X 轴的枚举值。由 max_axismin_axis 返回。

  • AXIS_Y = 1 —- Y 轴的枚举值。由 max_axismin_axis 返回。

  • AXIS_Z = 2 —- Z 轴的枚举值。由 max_axismin_axis 返回。

  • ZERO = Vector3( 0, 0, 0 ) —- 零向量,所有分量都设置为 0 的向量。

  • ONE = Vector3( 1, 1, 1 ) —- 一向量,所有分量都设置为 1 的向量。

  • INF = Vector3( inf, inf, inf ) —- 无穷大向量,所有分量都设置为 @GDScript.INF 的向量。

  • LEFT = Vector3( -1, 0, 0 ) —- 左单位向量。代表局部的左方向,全局的西方向。

  • RIGHT = Vector3( 1, 0, 0 ) —- 右单位向量。代表局部的右方向,全局的东方向。

  • UP = Vector3( 0, 1, 0 ) —- 上单位向量。

  • DOWN = Vector3( 0, -1, 0 ) —- 下单位向量。

  • FORWARD = Vector3( 0, 0, -1 ) —- 前单位向量。代表局部的前方向,全局的北方向。

  • BACK = Vector3( 0, 0, 1 ) —- 后单位向量。代表局部的后方向,全局的南方向。

属性说明

Default

0.0

向量的 X 分量。也可以通过使用索引位置 [0] 访问。


Default

0.0

向量的 Y 分量。也可以通过使用索引位置 [1] 访问。


Default

0.0

向量的Z分量。也可以通过使用索引位置[2]访问。

方法说明

返回具有给定分量的Vector3。


返回一个新的向量,其所有分量都是绝对值,即正值。


返回与给定向量的无符号最小角度,单位为弧度。


返回从由给定法线定义的平面上“反弹”的向量。


返回一个新的向量,所有的分量都是四舍五入的,向正无穷大。


返回此向量与 b 的叉积。


在向量pre_a, a, b, post_ba是当前的)之间,通过给定的量weight进行三次插值。weight的范围是0.0到1.0,表示插值的数量。


返回从这个向量指向b的归一化向量。这相当于使用(b-a).normalized()


返回这个向量与b之间的平方距离。

这个方法比distance_to运行得更快,所以如果你需要比较向量或需要一些公式的平方距离,则更喜欢它。


返回此向量与b之间的距离。


返回此向量与b的点积。这可以用来比较两个向量之间的角度。例如,这可以用来确定一个敌人是否正面对玩家。

对于直角90度,点积将是0,对于窄于90度的角度,点积大于0,对于宽于90度的角度,点积小于0。

当使用归一化单位向量,向量朝向相反方向时,结果总是在-1.0(180度角)和1.0(0度角)之间,当向量对齐。

注意:a.dot(b)等同于b.dot(a)


返回一个新的向量,所有的向量都被四舍五入,向负无穷大。


返回向量的反值。这与Vector3( 1.0 / v.x, 1.0 / v.y, 1.0 / v.z )相同。


通过对每个分量运行@GDScript.is_equal_approx,如果这个向量和v近似相等,返回true


  • bool is_normalized ( )

如果向量被归一化,返回true,否则返回false


返回这个向量的长度,即大小。


  • float length_squared ( )

返回这个向量的平方长度,即平方大小。

这个方法比length运行得更快,所以如果你需要比较向量或需要一些公式的平方距离时,更喜欢用它。


通过限制其长度为length,返回具有最大长度的向量。


返回这个向量与to之间的线性插值的结果,插值量为tweight的范围是0.0到1.0,表示插值的数量。


  • int max_axis ( )

返回向量的最大值的轴。参阅AXIS_*常量。如果所有分量都相等,该方法返回AXIS_X


  • int min_axis ( )

返回矢量的最小值的轴。参阅AXIS_*常量。如果所有分量都相等,本方法返回AXIS_Z


将此向量向to移动,以固定delta量。


返回缩放为单位长度的向量。相当于v/v.length()


返回与 b 的外积。


返回一个由这个向量分量的@GDScript.fposmodmod组成的向量。


返回一个由这个向量的modv分量和@GDScript.fposmod分量组成的向量。


返回这个向量投射到另一个向量b上的结果。


返回从给定法线定义的平面上反射的向量。


将此向量绕给定的轴旋转phi弧度。该轴必须是归一化的矢量。


返回这个向量的所有分量都被四舍五入为最接近的整数,中间情况下四舍五入为零。


返回一个向量,每个分量设置为1或负1,取决于这个向量的分量的符号。如果分量为0,则返回正1。


返回给定向量的带符号的角度,单位是弧度。当从axis指定的一侧看,该角度的符号在逆时针方向是正的,在顺时针方向是负的。


返回这个向量与to之间的球面线性插值的结果,按weight的数量。weight的范围是0.0到1.0,表示插值的数量。

注意:两个向量都必须被归一化。


返回沿着由给定法线定义的平面滑动的向量。


返回这个向量,每个分量都捕捉到step的最近倍数。这也可以用来四舍五入到任意数量的小数。


  • Basis to_diagonal_matrix ( )

返回一个以该向量为主对角线的对角线矩阵。

这相当于一个没有旋转或剪切的Basis,这个向量的分量被设定为缩放。